Island of Isolation i Java

Island of Isolation i Java

I Java blir objektdestruksjon tatt hånd om av søppelsamler modulen og objektene som ikke har noen referanser til dem er kvalifisert for søppelhenting. Garbage Collector er i stand til å identifisere denne typen objekter. La oss nå diskutere hva den nøyaktige Island of Isolation står for som følger:

  • Objekt 1 referanser Objekt 2 og Objekt 2 referanser Objekt 1. Verken Objekt 1 eller Objekt 2 er referert av noe annet objekt. Det er en øy av isolasjon.
  • I utgangspunktet er en øy med isolasjon en gruppe objekter som refererer til hverandre, men som ikke refereres til av noe aktivt objekt i applikasjonen. Strengt tatt er selv et enkelt ikke-referert objekt også en øy av isolasjon.

Eksempel:

Java
   // Java Program to Illustrate Island of Isolation   // Main class   public     class   GFG     {      GFG     i  ;      // Method 1      // Main driver method      public     static     void     main  (  String  []     args  )      {      // Creating object of class inside main() method      GFG     t1     =     new     GFG  ();      GFG     t2     =     new     GFG  ();      // Object of t1 gets a copy of t2      t1  .  i     =     t2  ;      // Object of t2 gets a copy of t1      t2  .  i     =     t1  ;      // Till now no object eligible      // for garbage collection      t1     =     null  ;      // Now two objects are eligible for      // garbage collection      t2     =     null  ;      // Calling garbage collector      System  .  gc  ();      }      // Method 2      // overriding finalize() Method      @Override     protected     void     finalize  ()     throws     Throwable      {      // Print statement      System  .  out  .  println  (  'Finalize method called'  );      }   }   

Produksjon:



Island of Isolation i Java

Utgangsforklaring:  

  • Før du ødelegger et objekt, kaller Garbage Collector sluttbehandlingsmetoden maksimalt én gang på det objektet. Det er fordi finalize()-metoden kalles to ganger i eksemplet ovenfor, fordi to objekter er kvalifisert for søppelinnsamling. Dette er fordi vi ikke har noen eksterne referanser til t1- og t2-objekter etter å ha kjørt t2=null.
  • Alt vi har er bare interne referanser (som for eksempel er variabel i av klasse Test) til dem av hverandre. Det er ingen måte vi kan kalle en instansvariabel for begge objektene. Så ingen av objektene kan kalles igjen til ' t2.i  =  t1 '
Island of Isolation i Java
  • Begge objektene har eksterne referanser t1 og t2.
  • t1 = null : Begge objektene kan nås via henholdsvis t2.i og t2. t2 = null: Ingen måte å nå noen av objektene. 
     

Nå er begge gjenstandene kvalifisert for søppeltømming som det er ingen måte vi kan kalle dem . Dette er populært kjent som Isolasjonens øy.


Topp Artikler

Kategori

Interessante Artikler