Mi a finalize() metódus a Java-ban, és hogyan lehet felülírni?

Mi A Finalize Metodus A Java Ban Es Hogyan Lehet Felulirni



A Java nagyszerű funkcionalitást biztosít a fejlesztőnek a rendszererőforrások hatékony kezeléséhez. Ilyen forgatókönyv esetén a „ véglegesít() ” metódus lép életbe, amely felszabadítja a rendszererőforrásokat, mielőtt a szemétgyűjtő végrehajtaná az adott objektumot. A „Java Virtual Machine (JVM)” azonban lehetővé teszi a „finalize()” metódus egyszeri meghívását objektumonként.

Ez a blog a „finalize()” metódus használatát és felülbírálását tárgyalja.







Mi az a Java „finalize()” módszer, és hogyan lehet felülírni?

A ' véglegesít() ' módszere a ' Tárgy ” osztályt hívja meg a „Garbage Collector” közvetlenül a szemétgyűjtésre alkalmas objektum törlése előtt a takarítási feladat végrehajtásához.



Szintaxis



védett semmis véglegesítés ( ) dobja Dobható





Ebben a szintaxisban a „ védett ” egy hozzáférés-specifikáció, amely azt jelenti, hogy ez a metódus csak az osztályon belül érhető el, és csak az osztály származtatott osztályai.

1. példa: A „finalize()” metódus alkalmazása Java nyelven



Ez a példa a „finalize()” metódus használatát mutatja be:

nyilvános osztály Finalize2 {
védett semmis véglegesítés ( ) {
System.out.println ( 'Ez a Finalize módszer!' ) ;
}
public static void main ( Húr [ ] args ) {
Finalize2 objektum = új Finalize2 ( ) ;
objektum = null;
System.gc ( ) ;
System.out.println ( – A szemétszállítót hívják! ) ;
} }

A fenti kódsorokban:

  • Alkalmazza a „ véglegesít() ” metódus a „Finalize2” osztályon belül, amely a megadott utasítást tartalmazza.
  • Ban ben ' fő- ”, hozzon létre egy osztályobjektumot a „Finalize2()” konstruktor segítségével.
  • Most rendeljen hozzá egy objektumot egy ' nulla ” értékét. Olyan, hogy amikor „null” értéke van, akkor nincs referencia és így szemétszállításra alkalmas.
  • Ezt követően alkalmazza a „ System.gc () ” metódust a szemétgyűjtő végrehajtásához, ezáltal meghívva a „finalize()” metódust.

Kimenet

Itt ellenőrizhető, hogy a „finalize()” metódus megfelelően van-e meghívva.

2. példa: A Java „finalize()” metódus felülbírálása

A ' Tárgy ” osztály az összes Java osztály szülőosztályának felel meg. Az ebben az osztályban található „finalize()” metódusnak nincs megvalósítása. Az osztálydefinícióban azonban ott vannak a takarítási tevékenységek. Ezért ennek a módszernek a felülbírálása a meghatározott tisztítási tevékenységek végrehajtását eredményezi:

nyilvános osztály Végleges {
védett semmis véglegesítés ( ) dobja Dobható {
próbáld ki {
System.out.println ( 'Az osztály finalize() metódusa' ) ;
}
fogás ( Dobható, kivéve ) {
dobja kivéve;
}
végül {
System.out.println ( 'Az Object osztály finalize() metódusának meghívása' ) ;
szuper.véglegesíteni ( ) ;
} }
public static void main ( Húr [ ] args ) dobja Dobható {
Finalize obj = new Finalize ( ) ;
obj.véglegesíteni ( ) ;
} }

A fenti kódblokk szerint:

  • Adja meg a „ véglegesít() ” módszert, és deklarálja a „ Dobható ” kivételt, ill.
  • Ban,-ben ' próbáld ki ” blokkot, adja meg a megadott utasítást, és kezelje a kivételt a „ fogás ' Blokk.
  • Ban,-ben ' végül ' blokk, a ' szuper ” kulcsszó az objektumosztály „finalize()” metódusára mutat. Ebben a speciális blokkban alkalmazzák a „finalize()” metódus végrehajtásának biztosítására, még akkor is, ha kivételt tapasztalunk.
  • Ban ben ' fő- ”, hozzon létre egy osztályobjektumot, és írja felül az objektumosztály „finalize()” metódusát a „Finalize” osztályban megadott/definiált metódussal.

Kimenet

Ennél az eredménynél megfigyelhető, hogy a „finalize()” metódus sikeresen felülírásra került.

Következtetés

A ' véglegesít() ” metódust hívja meg a „Garbage Collector” az objektum törlése előtt, és felülbírálható a „ szuper ” kulcsszó. Ez a blog a Java „finalize()” metódusának használatát és felülbírálását tárgyalja.