Zalecane, 2024

Wybór Redakcji

Różnica między Final, Final i Finalize w Javie

Słowa "finał, wreszcie i finalizacja" znajdują się w kontekście Javy. Każdemu z nich zapewnia się inne funkcjonowanie. Podstawową różnicą między końcowym, końcowym i końcowym jest to, że ostatecznym jest modyfikator dostępu, ostatecznie jest to blok i sfinalizowanie jest metodą klasy obiektu. Istnieją pewne inne różnice między końcowym, ostatecznym i końcowym, które są omówione w tabeli porównawczej.

Wykres porównania

Podstawa do porównaniaFinałWreszcieSfinalizować
PodstawowyFinał to "Słowo kluczowe" i "modyfikator dostępu" w Javie.Wreszcie jest "blok" w Javie.Finalize jest "metodą" w Javie.
OdpowiedniFinał to słowo kluczowe mające zastosowanie do klas, zmiennych i metod.Wreszcie jest blok, który jest zawsze związany z blokiem try i catch.finalize () to metoda stosowana do obiektów.
Pracujący(1) Zmienna końcowa staje się stała i nie można jej przypisać ponownie.
(2) Ostateczna metoda nie może być nadpisana przez klasę potomną.
(3) Klasy końcowej nie można przedłużać.
Blok "finally", wyczyść zasoby użyte w bloku "try".Finalizacja metody wykonuje czyszczenie działań związanych z obiektem przed jego zniszczeniem.
WykonanieOstateczna metoda jest wykonywana po jej wywołaniu.Blok "finally" jest wykonywany zaraz po wykonaniu bloku "try-catch".Metoda finalize () jest wykonywana tuż przed zniszczeniem obiektu.

Definicja finału

"Final" to słowo kluczowe w języku Java. Jest to modyfikator dostępu. Słowo kluczowe "ostateczny" odnosi się do klas, metod i zmiennych. Zobaczmy, jak to działa z każdym z nich.

Zmienna końcowa

  • Gdy końcowe słowo kluczowe zostanie zastosowane do zmiennej, nie można jej dalej modyfikować.
  • Ostatnia zmienna musi zostać zainicjalizowana po jej zadeklarowaniu.
  • We wspólnej konwencji kodowania, ostateczne zmienne są zadeklarowane w UPPERCASE.
  • Ostatnia zmienna nie zajmuje pamięci w zależności od instancji.
 końcowy int FILE_OPEN = 2; 

Końcowe metody

  • Gdy metoda w klasie jest zadeklarowana jako ostateczna, nie można jej przesłonić przez jej podklasę.
  • Małe metody, które są zadeklarowane jako ostateczne, mogą zostać "wstawione" przez kompilator, co zmniejszy narzut funkcji wywoływania i zwiększy ulepszenia wydajności.
  • Nadpisane wywołania metod są rozwiązywane dynamicznie, ale gdy metoda jest zadeklarowana jako ostateczna, nie można jej przesłonić. Dlatego wywołanie funkcji może zostać rozwiązane w czasie kompilacji.
 class A {final void meth () {System.out.println ("To jest metoda ostateczna."); }} klasa B extends A {void meth () {// Clas B nie może odziedziczyć metody klasy A. System.out.println ("Nie przesłonię"); }} 

Klasa końcowa

  • Gdy klasa jest zadeklarowana jako ostateczna, nie może być dziedziczona przez żadną podklasę.
  • Zgłoszenie klasy jako ostatecznej automatycznie ogłosi wszystkie jej metody ostateczne.
  • Nie możesz zadeklarować klasy jako "abstrakcyjnej" i "ostatecznej".
 final class A {// ...} klasa B rozszerza A {// klasa B nie może dziedziczyć klasy A // ...} 

Definicja na końcu

  • W Javie "finally" jest blokiem, który zawsze jest powiązany z blokiem try / catch.
  • Blok "finally" jest wykonywany po bloku try / catch i przed kodem następującym po bloku try / catch.
  • Blok "finally" wykona, czy wyjątek zostanie zgłoszony, czy nie.
  • Kiedy zostanie zgłoszony wyjątek, a żaden blok catch nie będzie nawet wtedy pasował do wyjątku, wykonywany jest blok "finally".
  • Kiedy metoda wraca do wywołującego z wnętrza bloku prób / catch przez nieprzechwycony wyjątek lub wyraźną instrukcję return, blok "finally" zostaje wykonany tuż przed powrotem metody do wywołującego.
  • Blok "finally" służy do czyszczenia zasobów lub zwolnienia pamięci używanej w bloku "try".
  • Blok "finally" jest opcjonalny, ale dobrą praktyką jest napisanie bloku finally po bloku try / catch.
 class FinalExample {// Ta metoda wyrzuca wyjątek z metody. static void procA () {spróbuj {System.out.println ("wewnątrz procA"); rzucić nowy RuntimeException ("demo"); } wreszcie {System.out.println ("ProcA's finally"); }} // Powrót z bloku try. static void procB () {spróbuj {System.out.println ("wewnątrz procB"); powrót; } wreszcie {System.out.println ("ProcB's finally"); }} // Wykonaj normalnie blok try. static void procC () {spróbuj {System.out.println ("wewnątrz procC"); } wreszcie {System.out.println ("procC's finally"); }} public static void main (String args []) {spróbuj {procA (); } catch (Exception e) {System.out.println ("Złapany wyjątek"); } procB (); procC (); }} // output inside procA procA's finally Wyjątek złapany wewnątrz procB procB's wreszcie wewnątrz procC procC's wreszcie 

Definicja finalizacji

  • Finalize jest metodą w klasie obiektu.
  • Obiekt może zawierać pewne zasoby inne niż java, takie jak uchwyt pliku; następnie musi zostać uwolniony, zanim zostanie zniszczony.
  • Ta metoda jest wywoływana przez garbage collector, zanim całkowicie zniszczy obiekt.
  • Ta metoda wykonuje czynności czyszczenia obiektu przed jego zniszczeniem.

Ogólna forma metody finalize () jest następująca.

 protected void finalize () {// kod zakończenia tutaj} 

Metoda finalizacji jest deklarowana jako chroniona, więc nie można uzyskać do niej dostępu spoza klasy.

Ta metoda jest zawsze wywoływana przed zbieraniem śmieci.

Kluczowe różnice między finałem, finałem i finalizacją

  1. Słowo kluczowe "końcowy" jest modyfikatorem dostępu, w końcu jest blokiem a sfinalizowanie jest metodą.
  2. Słowo kluczowe final odnosi się do klas, zmiennych i metod klas, wreszcie jest blokiem związanym z blokiem catch catch, który jest używany do obsługi wyjątków, finalize to metoda działająca tylko na obiektach.
  3. Zmienna raz zadeklarowana jako ostateczna staje się stała i nie może być ponownie przypisana, metoda zadeklarowana jako ostateczna nie może zostać zmieniona, a klasa raz zadeklarowana jako ostateczna nigdy nie może być dziedziczona. Blok finally służy do czyszczenia zasobów wykorzystywanych przez blok try i catch. Metoda finalizacji służy do czyszczenia zasobów używanych przez obiekt przed zniszczeniem obiektu.

Wniosek:

Końcowe, końcowe i końcowe ma inny efekt, gdy stosuje się metodę.

Top