Introduktion till Destructor i Java

Destruktorer i Java kan läras med avslutningsmetoden i Java. Konceptet är lika som slutföringsmetoden. Java fungerar för alla utom destruktorn med hjälp av sopor. Därför, om det finns ett behov av att ringa förstöraren, kan det göras med hjälp av slutföringsmetoden. Denna metod är inte oberoende eftersom den förlitar sig på Garbage Collection. Skräpsamlaren är en tråd som raderar eller förstör det oanvända föremålet i högområdet. Säg om objektet är anslutet till en fil eller säg någon databasapplikation eller nätverksanslutningar, innan du raderar eller förstör objektet måste det stänga alla anslutningar som är relaterade till dessa resurser innan skrämsamlingen äger rum. Dessa stängning av funktionerna görs genom att kalla slutföringsmetoden.

Definition av Destructor i Java

”Destructor är en metod som kallas när förstörelse av ett objekt äger rum. ”Förstörarens huvudmål är att frigöra det tilldelade minnet och även rensa upp resurser som stängning av öppna filer, stängning av databasanslutningar, stängning av nätverksresurser, etc.,

Syntax

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

Hur fungerar Destructor i Java?

Destruktorn har en finalize-metod i java som liknar destruktorn i C ++. När objekten skapas lagras de i högminnet. Dessa är tillgängliga via huvud- eller barntrådar. Så när dessa objekt inte längre används av huvudtråden eller dess barntrådar blir de berättigade till skräpsamling och minnet som förvärvades nu blir tillgängligt genom att nya objekt skapas. Innan ett objekt är ett sopor som samlas in av avfallssamlaren kallar JRE (Java Runtime Environment) för att slutföra () -metoden för att stänga input-output-strömmarna, databasanslutningarna, nätverksanslutningar osv. Observera att den slutförda metoden som är skyddad. Varför slutbehandlas skyddas eftersom det antingen kan kallas av basklassen eller härledd klass? avslutningsmetoden finns i objektklassen. Så om du vill kalla denna slutföringsmetod från andra objekt kan du ändra den skyddade till allmänheten.

Syntax:

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

Metoder för att slutföra ()

  1. finalize () -metoden är skyddad enligt definitionen i java.lang.Object-klassen.
  2. finalize () -metoden kallas bara en gång.
  3. För att åsidosätta metoden finalize () måste du anropa finalize-metoden uttryckligen.
  4. GC () är en tjänst hos JVM för att utföra Garbage Collection, det kallas när högminnet är fullt och behöver minne för nya objekt som kommer.
  5. JVM ignorerar alla undantag med undantag för de okontrollerade undantagen som förekommer i slutföringsmetoden.

Exempel 1

I programmet nedan kallas String-klassens motsvarande slutförande-metod istället för den avslutningsmetod som finns i programmet. Slutföringsmetoden åsidosätts här.

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

Produktion:

Exempel 2

I programmet nedan kallas slutföringsmetoden internt, inget uttryckligt samtal krävs.

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

Produktion:

Exempel 3

I nedanstående program kallades finaliseringen internt beroende på antalet skapade objekt.

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

Produktion:

Exempel 4

I programmet nedan skapas två objekt, finaliseringen kallas en gång eftersom båda objekten pekar på samma sak.

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

Produktion:

Exempel 5

I nedanstående program kommer slutföringsmetoden att kallas två gånger uttryckligen och internt båda.

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

Produktion:

Exempel 6

I nedanstående program finns det ett aritmetiskt undantag som kallas i avslutningsmetoden, eftersom det uttryckligen kallas vilket ytterligare orsakar undantaget och stoppar exekveringen av det återstående programmet.

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

Produktion:

Exempel 7

I nedanstående program finns det inget undantag som kallas eftersom det inte kallas uttryckligen och fortsätter exekveringen av det återstående programmet.

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

Produktion:

Fördelar med Destructor i Java

  1. Förstöraren förstör värdet som skapats av konstruktören till rymden i högminnet.
  2. Destructor kallas alltid i slutet av programmet.
  3. Destructor är aldrig överbelastad destruktor tar inget argument.
  4. Inget behov av att definiera vår konstruktör, kompilatorn skapar för oss en.

Slutsats

Hoppas att den här artikeln var intressant och informativ både för dig att lära dig ämnet. Den här artikeln har täckt nästan alla ämnen du letar efter och hoppas uppfyller alla dina krav.

Rekommenderade artiklar

Detta har varit en guide till Destructor i Java. Här har vi diskuterat Definitionen av Destructor i Java, Hur fungerar destructor i java med metoder, fördelar och olika exempel. Du kan också gå igenom vår andra föreslagna artikel för att lära dig mer-

  1. Vad är Java-gränssnitt?
  2. Vad är Java-gränssnitt?
  3. Java-verktyg
  4. Layout i Java
  5. Konstruktör och Destructor i Java
  6. Exempel på Destructor i Python
  7. JRE vs JVM | Topp 8 skillnader med (Infographics)
  8. Destruktor i PHP med exempel

Kategori: