Uvod v Destructor na Javi

Destruktorje na Javi se lahko naučimo z metodo finalizacije na Javi. Koncept je isti kot metoda za dokončno oblikovanje. Java deluje za vse, razen za uničevalce, s pomočjo odvoza smeti. Zato je treba v primeru, da je treba poklicati destruktor, storiti s pomočjo metode dokončanja. Ta metoda ni neodvisna, saj se opira na zbiranje smeti. Zbiralnik smeti je nit, ki izbriše ali uniči neuporabljen predmet na območju gomile. Recite, če je predmet povezan z datoteko ali recite kakšno aplikacijo baze podatkov ali omrežne povezave, preden mora izbrisati ali uničiti predmet, mora zapreti vse povezave, povezane s temi viri, preden se začne smeti. Zapiranje funkcij se izvede s klicanjem metode dokončanja.

Definicija Destruktorja v Javi

"Destruktor je metoda, ki se imenuje, ko pride do uničenja predmeta. "Glavni cilj destruktorja je sprostiti dodeljeni pomnilnik in tudi očistiti vire, kot so zapiranje odprtih datotek, zapiranje povezav z bazo podatkov, zapiranje omrežnih virov itd.

Sintaksa

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

Kako destruktor deluje na Javi?

V devastruktorju je na voljo tudi metoda finalize (), ki je podobna destruktorju v C ++. Ko so predmeti ustvarjeni, so shranjeni v heap spominu. Do njih so dostopne glavne ali podrejene niti. Ko glavna nit ali njene nadrejene niti teh predmetov ne uporabljajo več, postanejo primerni za zbiranje smeti in spomin, ki je bil pridobljen zdaj, je na voljo z novimi ustvarjenimi predmeti. Preden je predmet smeti, ki jih zbira zbiralnik smeti, JRE (Java Runtime Environment) pokliče metodo finalize (), da zapre vhodno-izhodne tokove, povezave z bazo podatkov, omrežne povezave itd. Upoštevajte, da je imenovani zaključni način zaščiten. Zakaj je dokončno urejanje zaščiteno, ker ga lahko imenujemo osnovni razred ali izpeljani razred? metoda dokončanja je prisotna v razredu Objekt. V primeru, da želite to metodo dokončanja poklicati iz drugih predmetov, lahko to zaščiteno spremenite v javno.

Sintaksa:

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

Načini dokončne izdelave ()

  1. metoda finalize () je zaščitena, kot je definirano v razredu java.lang.Object.
  2. metoda finalize () je poklicana samo enkrat.
  3. Če želite preglasiti metodo finalize (), morate izrecno poklicati metodo finalize.
  4. GC () je storitev JVM za izvajanje Garbage Collection, imenuje se, ko je polni pomnilnik in potrebuje pomnilnik za nove prispele predmete.
  5. JVM ignorira vse izjeme, razen nenadzorovanih izjem, ki se pojavijo v metodi dokončanja.

Primer # 1

V spodnjem programu se namesto metode dokončanja, ki je prisoten v programu, pokliče ustrezna metoda finalizacije razreda String. Tukaj je razveljavljena metoda dokončanja.

Koda:

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 ");
)
)

Izhod:

Primer # 2

V spodnjem programu se metoda za dokončanje pokliče interno, ni potreben izrecni klic.

Koda

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 ");
)
)

Izhod:

Primer # 3

V spodnjem programu je bila dokončna razvrstitev poklicana interno, odvisno od števila ustvarjenih predmetov.

Koda

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");
)
)

Izhod:

Primer št. 4

V spodnjem programu sta ustvarjena dva predmeta, dokončna pa se imenuje enkrat, saj oba predmeta kažeta na isto.

Koda:

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");
)
)

Izhod:

Primer št. 5

V spodnjem programu bo metoda dokončanja poklicana dvakrat izrecno in notranje oboje.

Koda

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 ");
)
)

Izhod:

Primer # 6

V spodnjem programu je aritmetična izjema, ki se imenuje v metodi dokončanja, saj se izrecno imenuje, kar nadalje povzroči izjemo in ustavi izvajanje preostalega programa.

Koda:

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);
)
)

Izhod:

Primer # 7

V spodnjem programu ni nobena izjema, ki je poklicana, saj ni izrecno poklicana in nadaljuje izvajanje preostalega programa.

Koda:

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);
)
)

Izhod:

Prednosti Destruktorja na Javi

  1. Destruktor uniči vrednost, ki jo ustvari konstruktor, v prostor v velikem pomnilniku.
  2. Destruktor se vedno pokliče na koncu programa.
  3. Destruktor ni nikoli preobremenjen. Destruktor ne sprejema nobenih argumentov.
  4. Našega konstruktorja ni treba definirati, prevajalnik nam ustvari enega.

Zaključek

Upam, da je bil ta članek zanimiv in poučen za vas, da se naučite teme. Ta članek je zajel skoraj vse teme, ki jih iščete in upamo, da izpolnjujejo vse vaše zahteve.

Priporočeni članki

To je vodnik za Destructor na Javi. Tu smo razpravljali o definiciji destruktorja na Javi, kako destruktor deluje v javi z metodami, prednostmi in različnimi primeri. Obiščite lahko tudi drug naš predlagani članek, če želite izvedeti več -

  1. Kaj je vmesnik Java?
  2. Kaj je vmesnik Java?
  3. Java Orodja
  4. Postavitev v Javi
  5. Konstruktor in Destruktor na Javi
  6. Primeri Destruktorja v Pythonu
  7. JRE proti JVM | Najboljših 8 razlik z (Infographics)
  8. Destruktor v PHP s primeri