Wat is de methode finalize() in Java en hoe deze te overschrijven

Wat Is De Methode Finalize In Java En Hoe Deze Te Overschrijven



Java biedt de ontwikkelaar een geweldige functionaliteit om de systeembronnen effectief te beheren. In een dergelijk scenario is de “ afronden() ”-methode wordt van kracht die de systeembronnen vrijgeeft voordat de vuilnisman een specifiek object uitvoert. Met de “Java Virtual Machine (JVM)” kan echter eenmaal per object de methode “finalize()” worden aangeroepen.

Deze blog bespreekt het gebruiken en vervangen van de methode 'finalize()'.







Wat is de Java-methode 'finalize()' en hoe deze te negeren?

De ' afronden() ” methode van de “ Voorwerp ” klasse wordt aangeroepen door de 'Garbage Collector' net voordat het object wordt verwijderd dat geschikt is voor opschonen om de opruimtaak uit te voeren.



Syntaxis



beveiligde leegte finaliseren ( ) gooit Gooibaar





In deze syntaxis, ' beschermd ” is een toegangsspecificatie die inhoudt dat deze methode alleen toegankelijk is binnen de klasse en de afgeleide klassen van die klasse.

Voorbeeld 1: de methode 'finalize()' toepassen in Java



Dit voorbeeld illustreert het gebruik van de methode 'finalize()':

openbare klasse Finalize2 {
beveiligde leegte finaliseren ( ) {
Systeem.out.println ( 'Dit is de Finalize-methode!' ) ;
}
openbare statische leegte main ( Snaar [ ] argumenten ) {
Finalize2-object = nieuw Finalize2 ( ) ;
object = nul;
Systeem.gc ( ) ;
Systeem.out.println ( 'Vuilnisman wordt ingeroepen!' ) ;
} }

In de bovenstaande coderegels:

  • Pas de ' afronden() '-methode binnen de klasse 'Finalize2' die de vermelde instructie bevat.
  • In ' voornaamst ”, maak een klasseobject via de constructor 'Finalize2()'.
  • Wijs nu een object toe aan een ' nul ' waarde. Het is zo dat wanneer het een 'nul' -waarde heeft, er geen referentie is en het dus geschikt is voor afvalophaling.
  • Pas daarna de ' Systeem.gc () ” methode om de garbage collector uit te voeren, waardoor de methode “finalize()” wordt aangeroepen.

Uitgang

Hier kan worden geverifieerd dat de methode 'finalize()' op de juiste manier wordt aangeroepen.

Voorbeeld 2: de Java-methode 'finalize()' overschrijven

De ' Voorwerp ” klasse komt overeen met de bovenliggende klasse van alle Java-klassen. De methode 'finalize()' die in deze klasse aanwezig is, heeft geen enkele implementatie. In de klassendefinitie zijn de opruimactiviteiten echter aanwezig. Daarom resulteert het overschrijven van deze methode in het uitvoeren van de gedefinieerde opruimactiviteiten:

openbare klasse Voltooien {
beveiligde leegte finaliseren ( ) gooit Gooibaar {
poging {
Systeem.out.println ( 'De klasse finalize() methode' ) ;
}
vangst ( Werpbaar behalve ) {
gooien behalve;
}
Eindelijk {
Systeem.out.println ( 'De methode finalize() van de klasse Object aanroepen' ) ;
super.afronden ( ) ;
} }
openbare statische leegte main ( Snaar [ ] argumenten ) gooit Gooibaar {
Finalize obj = nieuwe Finalize ( ) ;
obj.afronden ( ) ;
} }

Volgens het bovenstaande codeblok:

  • Specificeer de ' afronden() ' methode en declareer de ' Werpbaar uitzondering, respectievelijk.
  • In de ' poging ” blok, specificeer de vermelde verklaring en ga om met de uitzondering in de “ vangst ” blok.
  • In de ' Eindelijk ” blok, de “ super Het trefwoord verwijst naar de methode 'finalize()' van de objectklasse. Het wordt in dit specifieke blok toegepast om ervoor te zorgen dat de methode 'finalize()' wordt uitgevoerd, zelfs als er een uitzondering wordt aangetroffen.
  • In ' voornaamst ”, maak een klasseobject en overschrijf de methode “finalize()” van de objectklasse met de methode die is gespecificeerd/gedefinieerd in de klasse “Finalize”.

Uitgang

In dit resultaat kan worden waargenomen dat de methode 'finalize()' met succes is overschreven.

Conclusie

De ' afronden() ' methode wordt aangeroepen door de 'Garbage Collector' voordat het object wordt verwijderd en kan worden overschreven met behulp van de ' super ' sleutelwoord. Deze blog besprak het gebruik en overschrijven van de methode 'finalize()' in Java.