Vad är finalize()-metoden i Java och hur man åsidosätter den

Vad Ar Finalize Metoden I Java Och Hur Man Asidosatter Den



Java ger utvecklaren en stor funktionalitet för att effektivt hantera systemresurserna. I ett sådant scenario, ' avsluta() ”-metoden träder i kraft som frigör systemresurserna innan sopsamlaren kör för ett specifikt objekt. 'Java Virtual Machine (JVM)' tillåter dock att anropa 'finalize()'-metoden en gång per objekt.

Den här bloggen kommer att diskutera hur man använder och åsidosätter metoden 'finalize()'.







Vad är Java 'finalize()'-metoden och hur åsidosätter man den?

den ' avsluta() ' metoden för ' Objekt ” klass anropas av “Garbage Collector” precis innan objektet som är lämpligt för sophämtning tas bort för att tillämpa saneringsuppgiften.



Syntax



skyddat tomrum slutföra ( ) kastar Kastbar





I den här syntaxen ' skyddad ” är en åtkomstspecifikator som innebär att denna metod endast kan nås inom klassen och de härledda klasserna från den klassen.

Exempel 1: Använda metoden 'finalize()' i Java



Det här exemplet illustrerar användningen av metoden 'finalize()':

offentlig klass Slutför2 {
skyddat tomrum slutföra ( ) {
System.out.println ( 'Detta är Finalize-metoden!' ) ;
}
offentliga statiska tomrum huvud ( Sträng [ ] args ) {
Finalize2-objekt = nytt Finalize2 ( ) ;
objekt = null;
System.gc ( ) ;
System.out.println ( 'Sopsamlare åberopas!' ) ;
} }

I ovanstående kodrader:

  • Använd ' avsluta() ”-metoden inom klassen ”Finalize2” som omfattar det angivna uttalandet.
  • I ' huvud ”, skapa ett klassobjekt via konstruktorn “Finalize2()”.
  • Tilldela nu ett objekt en ' null ' värde. Det är så att när det har ett 'null'-värde finns det ingen referens och så är det lämpligt för sophämtning.
  • Efter det, använd ' System.gc () ”-metoden för att köra sopsamlaren och anropar därmed metoden ”finalize()”.

Produktion

Här kan det verifieras att metoden 'finalize()' anropas på lämpligt sätt.

Exempel 2: Åsidosättande av Java-metoden “finalize()”.

den ' Objekt ” klass motsvarar den överordnade klassen för alla Java-klasser. Metoden 'finalize()' som finns i den här klassen har ingen implementering. Men i klassdefinitionen finns saneringsverksamheten där. Att åsidosätta denna metod resulterar därför i att de definierade saneringsaktiviteterna utförs:

offentlig klass Slutför {
skyddad void slutföra ( ) kastar Kastbar {
Prova {
System.out.println ( 'Klassen finalize()-metoden' ) ;
}
fånga ( Kastbar förutom ) {
kasta utom;
}
till sist {
System.out.println ( 'Anropar finalize()-metoden för klassen Object' ) ;
super.slutföra ( ) ;
} }
offentliga statiska tomrum huvud ( Sträng [ ] args ) kastar Kastbar {
Slutför obj = ny Slutför ( ) ;
obj.slutföra ( ) ;
} }

Enligt ovanstående kodblock:

  • Specificera ' avsluta() '-metoden och deklarera ' Kastbar ” undantag, respektive.
  • I ' Prova ”-blockera, ange det angivna uttalandet och hantera undantaget i ” fånga ” block.
  • I ' till sist ' block, ' super ” nyckelordet pekar på metoden ”finalize()” för objektklassen. Den tillämpas i detta specifika block för att säkerställa exekveringen av metoden 'finalize()' även om ett undantag uppstår.
  • I ' huvud ”, skapa ett klassobjekt och åsidosätt metoden ”finalize()” för objektklassen med metoden som specificeras/definieras i klassen ”Finalize”.

Produktion

I det här resultatet kan det observeras att metoden 'finalize()' har åsidosatts framgångsrikt.

Slutsats

den ' avsluta() '-metoden anropas av 'Garbage Collector' innan objektet tas bort och kan åsidosättas med ' super ' nyckelord. Den här bloggen diskuterade att använda och åsidosätta metoden 'finalize()' i Java.