Różnica między ostatecznym, ostatecznym i finalizowanym w Javie

Autor: Laura McKinney
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 15 Móc 2024
Anonim
Różnica między ostatecznym, ostatecznym i finalizowanym w Javie - Technologia
Różnica między ostatecznym, ostatecznym i finalizowanym w Javie - Technologia

Zawartość


Słowa „ostateczny, wreszcie i finalizujący” leżą w obrębie języka Java. Każdy z nich ma inne funkcjonowanie. Podstawowa różnica między ostatecznym, ostatecznym i ostatecznym jest taka finał jest modyfikatorem dostępu, Wreszcie jest blokiem i sfinalizować jest metodą klasy obiektowej. Istnieją inne różnice między ostatecznym, ostatecznym i ostatecznym, które są omówione w tabeli porównawczej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniaFinałWreszcieSfinalizować
PodstawowyFinal to „Słowo kluczowe” i „modyfikator dostępu” w Javie.Wreszcie jest „blokiem” w Javie.Finalizacja to „metoda” w Javie.
OdpowiedniFinał jest słowem kluczowym stosowanym do klas, zmiennych i metod.Wreszcie jest blok, który zawsze jest powiązany z blokiem try-catch.finalize () jest metodą stosowaną do obiektów.
Pracujący(1) Zmienna końcowa staje się stała i nie można jej ponownie przypisać.
(2) Ostateczna metoda nie może zostać zastąpiona przez klasę potomną.
(3) Klasy końcowej nie można przedłużyć.
Blok „w końcu”, oczyść zasoby użyte w bloku „wypróbuj”.Metoda Finalize wykonuje czynności związane z czyszczeniem obiektu przed jego zniszczeniem.
WykonanieOstateczna metoda jest wykonywana po jej wywołaniu.Blok „Wreszcie” jest wykonywany tuż po wykonaniu bloku „try-catch”.Metoda finalize () jest wykonywana tuż przed zniszczeniem obiektu.


Definicja finału

„Final” jest słowem kluczowym w Javie. Jest to modyfikator dostępu. Słowo kluczowe „końcowe” dotyczy klas, metod i zmiennych. Zobaczmy, jak to działa z każdym z nich.

Ostateczna zmienna

  • Kiedy ostatnie słowo kluczowe zostanie zastosowane do zmiennej, nie będzie można jej dalej modyfikować.
  • Ostateczna zmienna musi zostać zainicjowana, kiedy zostanie zadeklarowana.
  • We wspólnej konwencji kodowania zmienne końcowe są zadeklarowane jako WIELKIE LITERY.
  • Ostatnia zmienna nie zajmuje pamięci dla poszczególnych instancji.

final int FILE_OPEN = 2;

Ostateczne metody

  • Gdy metoda w klasie jest zadeklarowana jako końcowa, nie można jej przesłonić podklasą.
  • Małe metody, które są deklarowane jako ostateczne, mogą zostać „wbudowane” przez kompilator, co zmniejszy narzut wywołania funkcji i zwiększy wydajność.
  • Wywołanie zastąpionych metod jest rozwiązywane dynamicznie, ale gdy metoda zostanie zadeklarowana jako ostateczna, nie można jej zastąpić. Dlatego wywołanie funkcji można rozwiązać podczas kompilacji.

klasa A {final void met () {System.out.ln („Jest to metoda ostateczna.”); }} klasa B rozszerza A {void met () {// Klasy B nie mogą dziedziczyć metody klasy A. System.out.ln („Nie zastępuje”); }}

Klasa finałowa

  • Gdy klasa jest zadeklarowana jako ostateczna, nie może być dziedziczona przez żadną podklasę.
  • Uznanie klasy za ostateczną spowoduje automatyczne uznanie wszystkich jej metod za ostateczne.
  • Nie można zadeklarować klasy jako „abstrakcyjnej” i „ostatecznej”.

klasa końcowa A {// ...} klasa B rozszerza A {// Klasa B nie może odziedziczyć klasy A // ...}

  • W Javie „w końcu” jest blokiem, który zawsze jest powiązany z blokiem try / catch.
  • Blok „w końcu” jest wykonywany po bloku try / catch i przed kodem po bloku try / catch.
  • Blok „w końcu” zostanie wykonany niezależnie od tego, czy wyjątek zostanie zgłoszony, czy nie.
  • Gdy zgłoszony zostanie wyjątek i żaden blok catch nie pasuje do wyjątku nawet wtedy, blok „w końcu” jest wykonywany.
  • Kiedy metoda wraca do dzwoniącego z bloku try / catch przez nieprzechwycony wyjątek lub jawną instrukcję return, blok „w końcu” zostaje wykonany tuż przed powrotem metody do dzwoniącego.
  • Blok „w końcu” służy do czyszczenia zasobów lub zwalniania pamięci używanej w bloku „try”.
  • Blok „w końcu” jest opcjonalny, ale dobrą praktyką jest pisanie bloku w końcu po bloku try / catch.

klasa Wreszcie Przykład {// Ta metoda wyrzuca wyjątek z metody. static void procA () {try {System.out.ln („inside procA”); wrzuć nowy wyjątek RuntimeException („demo”); } Wreszcie {System.out.ln („procAs Wreszcie”); }} // Wróć z wewnątrz bloku try. static void procB () {try {System.out.ln („inside procB”); powrót; } w końcu {System.out.ln („w końcu procBs”); }} // Wykonaj blok try normalnie. static void procC () {try {System.out.ln („inside procC”); } w końcu {System.out.ln („w końcu procCs”); }} public static void main (String args) {try {procA (); } catch (wyjątek e) {System.out.ln („Złapany wyjątek”); } procB (); procC (); }} // wyjście wewnątrz procA procA w końcu Wyjątek złapany w procB procB w końcu wewnątrz procC procC w końcu

Definicja finalizacji

  • Finalizacja jest metodą w klasie obiektów.
  • Obiekt może przechowywać niektóre zasoby inne niż Java, takie jak uchwyt pliku; wtedy trzeba go uwolnić, zanim zostanie zniszczony.
  • Ta metoda jest wywoływana przez śmietnik, zanim całkowicie zniszczy obiekt.
  • Ta metoda wykonuje czynności czyszczenia dla obiektu przed jego zniszczeniem.

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


protected void finalize () {// kod finalizacji tutaj}

Metoda finalizacji jest zadeklarowana jako chroniona, aby nie można było uzyskać do niej dostępu spoza klasy.

Ta metoda jest zawsze wywoływana przed odśmiecaniem pamięci.

  1. Słowo kluczowe final jest modyfikatorem dostępu, w końcu jest blokiem, a finalizacja jest metodą.
  2. Słowo kluczowe final ma zastosowanie do klas, zmiennych i metod klas, wreszcie jest blokiem skojarzonym z blokiem try catch, który służy do obsługi wyjątków, finalizacja jest metodą działającą tylko na obiektach.
  3. Zmienna raz zadeklarowana jako końcowa staje się stała i nie można jej ponownie przypisać, metody zadeklarowanej jako ostateczna nie można zastąpić, a klasy raz zadeklarowanej jako ostateczna nigdy nie można odziedziczyć. Ostatecznie blok służy do czyszczenia zasobów wykorzystywanych przez try i catch block. Metoda finalizacji służy do czyszczenia zasobów używanych przez obiekt przed zniszczeniem obiektu.

Wniosek:

Ostateczny, wreszcie i finalizujący ma inny efekt, gdy zostanie zastosowany do metody.