Uvod u Destructor na Javi

Destruktori u Javi mogu se naučiti metodom finalizacije na Javi. Koncept je isti kao i metoda finalizacije. Java radi za sve osim za destruktor uz pomoć Garbage collection. Stoga, u slučaju da postoji potreba za pozivanjem destruktora, to se može učiniti uz pomoć metode finalizacije. Ova metoda nije neovisna jer se oslanja na skupljanje smeća. Skupljač smeća je nit kojom se briše ili uništava neiskorišteni objekt u području hrpe. Recite je li objekt povezan s datotekom ili recite neku aplikaciju baze podataka ili mrežne veze, prije brisanja ili uništavanja objekta on mora zatvoriti sve veze povezane s tim resursima prije nego što se obavi smeće. To zatvaranje funkcija vrši se pozivanjem metode finaliziranja.

Definicija Destruktora u Javi

"Destruktor je metoda koja se naziva kada dolazi do uništenja objekta. "Glavni cilj destruktora je osloboditi dodijeljenu memoriju i također očistiti resurse poput zatvaranja otvorenih datoteka, zatvaranja veza s bazama podataka, zatvaranja mrežnih resursa itd.,

Sintaksa

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

Kako destruktor radi u Javi?

Destruktor ima metodu finalize () u javi koja je slična destruktoru u C ++. Kad se objekti stvore, oni se pohranjuju u veliku memoriju. Oni su dostupni glavnim ili podređenim nitima. Dakle, kada glavni predmet ili njegove podređene teme više ne koriste ove objekte, oni postaju prihvatljivi za skupljanje smeća, a memorija koja je sada stečena postaje dostupna novim objektima koji se stvaraju. Prije nego što je objekt smeće koje sakuplja sakupljač smeća, JRE (Java Runtime Environment) poziva metodu finalize () radi zatvaranja ulazno-izlaznih tokova, veza baze podataka, mrežnih veza itd. Imajte na umu da je pozvana metoda finaliziranja zaštićena. Zašto je finaliziranje zaštićeno jer ga može pozvati ili osnovna klasa ili izvedena klasa? metoda finalizacije prisutna je u klasi Object. Prema tome, u slučaju da ovu metodu dovršetka želite nazvati iz drugih objekata, to zaštićeno možete promijeniti u javno.

Sintaksa:

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

Metode dovršetka ()

  1. metoda finalize () zaštićena je kako je definirano u klasi java.lang.Object.
  2. metoda finalize () poziva se samo jednom.
  3. da biste prevladali metodu finalize (), morate eksplicitno pozvati metodu finalize.
  4. GC () je usluga JVM-a za izvršavanje Garbage Collection, naziva se kada je skupna memorija puna i treba joj memorija za nove dolazne objekte.
  5. JVM ignorira sve iznimke osim nekontroliranih izuzetaka koji se pojavljuju u metodi finaliziranja.

Primjer 1

U donjem programu se zove metoda finalizacije koja odgovara klasi String umjesto metode finaliziranja prisutne u programu. Ovdje se prevladava metoda finalizacije.

Kodirati:

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

Izlaz:

Primjer 2

U donjem programu interno se poziva metoda finalizacije, nije potreban izričiti poziv.

Kodirati

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

Izlaz:

Primjer 3

U donjem programu, finaliziranje se naziva interno, ovisno o broju kreiranih objekata.

Kodirati

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

Izlaz:

Primjer 4

U programu u nastavku kreiraju se dva objekta, a finaliziranje se zove jednom jer oba objekta pokazuju na isti.

Kodirati:

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

Izlaz:

Primjer 5

U donjem programu će se metoda finaliziranja dvaput izričito i interno pozvati i jedno i drugo.

Kodirati

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

Izlaz:

Primjer 6

U donjem programu postoji aritmetička iznimka koja se poziva u metodi dovršetka, jer se izričito naziva što dalje uzrokuje izuzeće i zaustavlja izvršenje preostalog programa.

Kodirati:

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

Izlaz:

Primjer 7

U donjem programu nije izuzetak koji se zove jer se ne izričito zove i nastavlja izvršenje preostalog programa.

Kodirati:

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

Izlaz:

Prednosti Destruktora u Javi

  1. Destruktor uništava vrijednost koju je konstruktor stvorio u prostor u velikoj memoriji.
  2. Destruktor se uvijek zove na kraju programa.
  3. Destruktor nikad nije preopterećen Destruktor ne uzima nijedan argument.
  4. Nema potrebe za definiranjem našeg konstruktora, prevoditelj stvara za nas jedan.

Zaključak

Nadam se da je ovaj članak bio zanimljiv i informativan za vas kako biste naučili temu. Ovaj članak dao je pokrivati ​​gotovo sve teme koje tražite i nadam se da ispunjavaju sve vaše zahtjeve.

Preporučeni članci

Ovo je vodič za Destructor u Javi. Ovdje smo razgovarali o definiciji destruktora u Javi, kako destruktor djeluje u javi s Metodama, prednostima i različitim primjerima. Možete i proći kroz naš drugi predloženi članak kako biste saznali više -

  1. Što je Java sučelje?
  2. Što je Java sučelje?
  3. Java alati
  4. Izgled u Javi
  5. Konstruktor i destruktor na Javi
  6. Primjeri Destruktora u Pythonu
  7. JRE vs JVM | Top 8 razlike s (Infographics)
  8. Destruktor u PHP-u s primjerima

Kategorija: