Introduksjon til Destructor i Java

Destruktører i Java kan læres ved å fullføre metoden i Java. Konseptet er det samme som sluttføringsmetoden. Java fungerer for alle unntatt destruktoren ved hjelp av søppelinnsamling. I tilfelle det er behov for å ringe destruktoren, kan det gjøres ved hjelp av fullføringsmetoden. Denne metoden er ikke uavhengig ettersom den er avhengig av Garbage Collection. Søppeloppsamleren er en tråd som sletter eller ødelegger den ubrukte gjenstanden i haugområdet. Si om objektet er koblet til en fil, eller si noen databaseapplikasjon eller nettverkstilkoblinger, før du sletter eller ødelegger objektet, må det lukke alle tilkoblingene relatert til disse ressursene før søppelsamlingen finner sted. Disse lukkingen av funksjonene gjøres ved å kalle ferdiggjøringsmetoden.

Definisjon av Destructor i Java

“Destructor er en metode som kalles når ødeleggelsen av et objekt finner sted. "Hovedmålet med destruktoren er å frigjøre det tildelte minnet og også å rydde opp i ressurser som å lukke åpne filer, lukke databasetilkoblinger, lukke nettverksressurser osv.,

syntax

Class Object
(
protected void finalize()
(
//statements like closure of database connection
)
)

Hvordan fungerer Destructor i Java?

Destruktoren har en sluttmetode () -metode i java som ligner destruktoren i C ++. Når objektene opprettes, lagres de i bunkehukommelsen. Disse er tilgjengelige med hoved- eller barnetråder. Så når disse objektene ikke brukes mer av hovedtråden eller dets barnetråder, blir de kvalifisert for søppelinnsamling og minnet som ble anskaffet nå blir tilgjengelig av nye objekter som blir opprettet. Før et objekt er et søppel som er samlet inn av søppelsamleren, kaller JRE (Java Runtime Environment) sluttføringen () -metoden for å lukke inngangs-utgangsstrømmene, databaseforbindelsene, nettverkstilkoblingene osv. Merk at den avsluttede metoden som er kalt, er beskyttet. Hvorfor sluttbehandling er beskyttet fordi det enten kan kalles av baseklassen eller avledet klasse? fullføringsmetode er til stede i objektklassen. I tilfelle du vil kalle denne avsluttende metoden fra andre objekter, kan du endre denne beskyttet til offentlig.

syntaks:

protected void finalize throws Throwable()
(
//Keep some resource closing operations here
)

Metoder for å fullføre ()

  1. finalize () -metoden er beskyttet som definert i java.lang.Object-klassen.
  2. finalize () -metoden kalles bare en gang.
  3. Hvis du vil overstyre fullføringsmetoden (), må du kalle fullføringsmetoden eksplisitt.
  4. GC () er en tjeneste fra JVM for å utføre Garbage Collection, det kalles når heapminnet er fullt og trenger minne for nye objekter som kommer.
  5. JVM ignorerer alle unntak bortsett fra de ikke-avmerkede unntakene som oppstår i fullføringsmetoden.

Eksempel 1

I programmet nedenfor heter String-klassen tilsvarende finaliseringsmetode i stedet for den avsluttende metoden som er tilstede i programmet. Ferdiggjøringsmetoden overstyres her.

Kode:

public class Demo
(
public static void main(String() args)
(
Integer i = new Integer(2);
i = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("object is garbage collected ");
)
)

Produksjon:

Eksempel 2

I programmet nedenfor blir finaliseringsmetoden kalt internt, ingen eksplisitt samtale kreves.

Kode

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("object is garbage collected ");
)
)

Produksjon:

Eksempel 3

I programmet under ble finaliseringen kalt internt avhengig av antall objekter som ble opprettet.

Kode

public class NewProgram(
public void finalize()(
System.out.println("object is garbage collected");
)
public static void main(String args())(
NewProgram np1=new NewProgram(); //first instantiation of Class NewProgram
NewProgram np2=new NewProgram(); //second instantiation of Class NewProgram
np1=null;
np2=null;
System.gc();
System.out.println("In the Main Method");
)
)

Produksjon:

Eksempel 4

I programmet nedenfor opprettes to objekter, og finaliseringen kalles en gang, ettersom begge objektene peker på det samme.

Kode:

public class NewProgram(
public void finalize()(
System.out.println("garbage collected");
)
public static void main(String args())(
NewProgram np1=new NewProgram(); //first instantiation of Class NewProgram
NewProgram np2=new NewProgram(); //second instantiation of Class NewProgram
np1 = np2; // both now pointing to same object
System.gc();
System.out.println("in the Main Method");
)
)

Produksjon:

Eksempel 5

I programmet under vil finaliseringsmetoden bli kalt to ganger eksplisitt og internt begge deler.

Kode

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm.finalize();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("garbage collected ");
)
)

Produksjon:

Eksempel 6

I programmet nedenfor er det et aritmetisk unntak som kalles i sluttføringsmetoden som det eksplisitt kalles som ytterligere forårsaker unntaket og stopper utførelsen av det gjenværende programmet.

Kode:

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm.finalize();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("garbage collected ");
System.out.println(10 / 0);
)
)

Produksjon:

Eksempel 7

I programmet under er det ikke noe unntak som heter, da det ikke heter eksplisitt og fortsetter utførelsen av det gjenværende programmet.

Kode:

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("garbage collected ");
System.out.println(10 / 0);
)
)

Produksjon:

Fordelene med Destructor i Java

  1. Destruktoren ødelegger verdien skapt av konstruktøren til verdensrommet i bunkehukommelsen.
  2. Destructor blir alltid kalt på slutten av programmet.
  3. Destructor er aldri overbelastet destructor tar ikke noe argument.
  4. Ingen grunn til å definere konstruktøren vår, kompilatoren skaper for oss en.

Konklusjon

Håper denne artikkelen var interessant og informativ både for deg å lære emnet. Denne artikkelen som er gitt har dekket nesten alle emnene du leter etter og håper oppfyller alle dine krav.

Anbefalte artikler

Dette har vært en guide til Destructor i Java. Her har vi diskutert Definisjon av Destructor i Java, Hvordan fungerer destructor i java med metoder, fordeler og forskjellige eksempler. Du kan også gå gjennom vår andre foreslåtte artikkel for å lære mer-

  1. Hva er Java-grensesnitt?
  2. Hva er Java-grensesnitt?
  3. Java-verktøy
  4. Oppsett i Java
  5. Konstruktør og Destructor i Java
  6. Eksempler på Destructor i Python
  7. JRE vs JVM | Topp 8 forskjeller med (Infographics)
  8. Destruktor i PHP med eksempler