Isolationens ö i Java

Isolationens ö i Java

I Java tas objektdestruktion om hand av sophämtare modulen och de föremål som inte har några referenser till dem är kvalificerade för sophämtning. Garbage Collector kan identifiera denna typ av objekt. Låt oss nu diskutera vad exakt Island of Isolation står för enligt följande:

  • Objekt 1 refererar Objekt 2 och Objekt 2 refererar till Objekt 1. Varken Objekt 1 eller Objekt 2 refereras av något annat objekt. Det är en ö av isolering.
  • I grund och botten är en ö av isolering en grupp av objekt som refererar till varandra men som inte refereras av något aktivt objekt i applikationen. Strängt taget är till och med ett enda objekt utan referens också en ö av isolering.

Exempel:

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

Produktion:

Isolationens ö i Java

Utgångsförklaring:  

  • Innan ett objekt förstörs anropar Garbage Collector slutföringsmetoden högst en gång på det objektet. Det beror på att metoden finalize() anropas två gånger i exemplet ovan beror på att två objekt är kvalificerade för sophämtning. Detta beror på att vi inte har några externa referenser till t1- och t2-objekt efter att ha kört t2=null.
  • Allt vi har är bara interna referenser (som är i instansvariabeln i klassen Test) till dem av varandra. Det finns inget sätt vi kan kalla instansvariabel för båda objekten. Så inget av objekten kan kallas igen till ' t2.i  =  t1 '
Isolationens ö i Java
  • Båda objekten har externa referenser t1 och t2.
  • t1 = noll : Båda objekten kan nås via t2.i respektive t2. t2 = null: Inget sätt att nå något av föremålen. 
     

Nu är båda föremålen berättigade till sophämtning som det finns inget sätt vi kan kalla dem . Detta är populärt känt som Isoleringens ö.