Što je metoda finalize() u Javi i kako je nadjačati

Sto Je Metoda Finalize U Javi I Kako Je Nadjacati



Java programerima pruža izvrsnu funkcionalnost za učinkovito upravljanje resursima sustava. U takvom scenariju, ' finalizirati () ” stupa na snagu metoda koja oslobađa resurse sustava prije nego što se skupljač smeća izvrši za određeni objekt. Međutim, 'Java Virtual Machine (JVM)' dopušta pozivanje metode 'finalize()' jednom po objektu.

Ovaj blog raspravljat će o korištenju i nadjačavanju metode 'finalize()'.







Što je Java 'finalize()' metoda i kako je nadjačati?

' finalizirati() ' metoda ' Objekt ” klasu poziva “Garbage Collector” neposredno prije brisanja objekta koji je prikladan za sakupljanje smeća radi primjene zadatka čišćenja.



Sintaksa



zaštićen void finalize ( ) dobacuje Throwable





U ovoj sintaksi, ' zaštićen ” je specifikator pristupa koji implicira da se ovoj metodi može pristupiti samo unutar klase i izvedenih klasa te klase.

Primjer 1: Primjena metode “finalize()” u Javi



Ovaj primjer ilustrira korištenje metode 'finalize()':

javna klasa Finalize2 {
zaštićen void finalize ( ) {
System.out.println ( 'Ovo je metoda Finalize!' ) ;
}
public static void main ( Niz [ ] args ) {
Objekt Finalize2 = novi Finalize2 ( ) ;
objekt = nula;
System.gc ( ) ;
System.out.println ( 'Pozvan je skupljač smeća!' ) ;
} }

U gornjim linijama koda:

  • Primijeni ' finalizirati() ” unutar klase “Finalize2” koja sadrži navedenu izjavu.
  • u ' glavni ”, kreirajte objekt klase putem konstruktora “Finalize2()”.
  • Sada dodijelite objektu a ' ništavan ” vrijednost. Takav je da kada ima 'null' vrijednost, nema reference i stoga je prikladan za sakupljanje smeća.
  • Nakon toga primijenite ' System.gc () ” za izvršavanje skupljača smeća, čime se poziva metoda „finalize()”.

Izlaz

Ovdje se može provjeriti je li metoda 'finalize()' ispravno pozvana.

Primjer 2: Nadjačavanje Java metode “finalize()”.

' Objekt ” klasa odgovara roditeljskoj klasi svih Java klasa. Metoda 'finalize()' prisutna u ovoj klasi nema nikakvu implementaciju. Međutim, u definiciji klase postoje aktivnosti čišćenja. Stoga nadjačavanje ove metode rezultira izvođenjem definiranih aktivnosti čišćenja:

javna klasa Finalize {
zaštićen void finalize ( ) dobacuje Throwable {
probati {
System.out.println ( 'Metoda klase finalize()' ) ;
}
ulov ( Može se bacati osim ) {
baciti osim;
}
konačno {
System.out.println ( 'Pozivanje metode finalize() klase Object' ) ;
super.finalizirati ( ) ;
} }
public static void main ( Niz [ ] args ) dobacuje Throwable {
Finaliziraj obj = novo Finaliziraj ( ) ;
obj.finalizirati ( ) ;
} }

Prema gornjem bloku koda:

  • Navedite ' finalizirati() ' i deklarirajte ' Za bacanje ” izuzetak.
  • u ' probati ', odredite navedenu izjavu i riješite iznimku u ' ulov ' blok.
  • u ' konačno ' blok, ' super ” ključna riječ ukazuje na metodu „finalize()” klase objekta. Primjenjuje se u ovom specifičnom bloku kako bi se osiguralo izvršenje metode 'finalize()', čak i ako se suoči s iznimkom.
  • u ' glavni “, kreirajte objekt klase i nadjačajte metodu „finalize()” klase objekta metodom navedenom/definiranom u klasi „Finalize”.

Izlaz

U ovom ishodu može se primijetiti da je metoda 'finalize()' uspješno nadjačana.

Zaključak

' finalizirati() ' metodu poziva 'Garbage Collector' prije brisanja objekta i može se nadjačati pomoću ' super ” ključna riječ. Ovaj blog raspravlja o korištenju i nadjačavanju metode 'finalize()' u Javi.