Co je metoda finalize() v Javě a jak ji přepsat

Co Je Metoda Finalize V Jave A Jak Ji Prepsat



Java poskytuje vývojářům skvělé funkce pro efektivní správu systémových prostředků. V takovém scénáři „ dokončit() ” vstoupí v platnost metoda, která uvolní systémové prostředky dříve, než se garbage collector spustí pro konkrétní objekt. „Java Virtual Machine (JVM)“ však umožňuje vyvolat metodu „finalize()“ jednou pro každý objekt.

Tento blog bude diskutovat o použití a přepsání metody „finalize()“.







Co je metoda Java „finalize()“ a jak ji přepsat?

' dokončit() “ metoda “ Objekt Třída ” je vyvolána „Garbage Collector“ těsně před odstraněním objektu, který je vhodný pro garbage collection, aby se použila úloha čištění.



Syntax



chráněná neplatné dokončit ( ) hází Throwable





V této syntaxi „ chráněný ” je specifikátor přístupu, který znamená, že k této metodě lze přistupovat pouze v rámci třídy a odvozených tříd této třídy.

Příklad 1: Použití metody „finalize()“ v Javě



Tento příklad ilustruje použití metody „finalize()“:

veřejná třída Finalize2 {
chráněná neplatné dokončit ( ) {
System.out.println ( 'Toto je metoda Finalize!' ) ;
}
public static void main ( Tětiva [ ] argumenty ) {
Objekt Finalize2 = nový Finalize2 ( ) ;
objekt = null;
System.gc ( ) ;
System.out.println ( 'Vyvolává se sběrač odpadků!' ) ;
} }

Ve výše uvedených řádcích kódu:

  • Aplikujte „ dokončit() ” metoda v rámci třídy „Finalize2“ obsahující uvedený příkaz.
  • V ' hlavní “, vytvořte objekt třídy pomocí konstruktoru „Finalize2()“.
  • Nyní přidělte objektu „ nula “hodnota. Je taková, že když má hodnotu „null“, není tam žádná reference, a tak je vhodná pro sběr odpadu.
  • Poté použijte „ System.gc () ” ke spuštění garbage collectoru, čímž se zavolá metoda “finalize()”.

Výstup

Zde lze ověřit, že metoda „finalize()“ je vyvolána správně.

Příklad 2: Přepsání metody Java „finalize()“.

' Objekt ” odpovídá nadřazené třídě všech tříd Java. Metoda „finalize()“ přítomná v této třídě nemá žádnou implementaci. V definici třídy jsou však úklidové činnosti. Proto přepsání této metody povede k provedení definovaných činností čištění:

veřejná třída Dokončit {
chráněná neplatné dokončit ( ) hází Throwable {
Snaž se {
System.out.println ( 'Metoda class finalize()' ) ;
}
chytit ( Vhazovatelné kromě ) {
hodit kromě;
}
Konečně {
System.out.println ( 'Vyvolání metody finalize() třídy Object' ) ;
super.finalizovat ( ) ;
} }
public static void main ( Tětiva [ ] argumenty ) hází Throwable {
Finalize obj = nové Finalize ( ) ;
obj.finalizovat ( ) ;
} }

Podle výše uvedeného bloku kódu:

  • Upřesněte „ dokončit() “ a deklarujte “ Vhazovatelné “výjimka, resp.
  • V ' Snaž se “, specifikujte uvedené prohlášení a vypořádejte se s výjimkou v “ chytit ”blok.
  • V ' Konečně „blok“, „ super Klíčové slovo ” ukazuje na metodu “finalize()” třídy objektu. Používá se v tomto specifickém bloku k zajištění provedení metody „finalize()“, i když dojde k výjimce.
  • V ' hlavní “, vytvořte objekt třídy a přepište metodu „finalize()“ třídy objektu metodou specifikovanou/definovanou ve třídě „Finalize“.

Výstup

V tomto výsledku lze pozorovat, že metoda „finalize()“ byla úspěšně potlačena.

Závěr

' dokončit() “ je vyvolána „Garbage Collector“ před odstraněním objektu a lze ji přepsat pomocí „ super “. Tento blog pojednával o použití a přepsání metody „finalize()“ v Javě.