Ostrov izolace na Jávě

Ostrov izolace na Jávě

V Javě se o zničení objektů stará sběrač odpadků modul a objekty, které na ně nemají žádné odkazy, jsou způsobilé pro sběr odpadu. Garbage Collector je schopen identifikovat tento typ objektu. Nyní pojďme diskutovat o tom, co přesně znamená Island of Isolation takto:

  • Objekt 1 odkazuje na objekt 2 a objekt 2 odkazuje na objekt 1. Na objekt 1 ani na objekt 2 neodkazuje žádný jiný objekt. To je ostrov izolace.
  • Ostrov izolace je v podstatě skupina objektů, které na sebe odkazují, ale neodkazuje na ně žádný aktivní objekt v aplikaci. Přísně vzato i jediný nereferencovaný objekt je také ostrůvkem izolace.

Příklad:

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

výstup:

Ostrov izolace na Jávě

Vysvětlení výstupu:  

  • Před zničením objektu Garbage Collector volá metodu finalize maximálně jednou na daném objektu. Je to proto, že metoda finalize() je ve výše uvedeném příkladu volána dvakrát, protože dva objekty jsou vhodné pro shromažďování odpadků. Je to proto, že po provedení t2=null nemáme žádné externí odkazy na objekty t1 a t2.
  • Vše, co máme, jsou pouze interní odkazy (což je například proměnná i třídy Test) na ně navzájem. Neexistuje způsob, jak můžeme volat instanční proměnnou obou objektů. Žádný z objektů tedy nelze znovu volat do ' t2.i  =  t1 '
Ostrov izolace na Jávě
  • Oba objekty mají externí reference t1 a t2.
  • t1 = nula: Oba objekty lze dosáhnout prostřednictvím t2.i resp. t2. t2 = null: Žádný způsob, jak se dostat k některému z objektů. 
     

Nyní jsou oba objekty způsobilé pro sběr odpadu jako neexistuje způsob, jak jim můžeme zavolat . To je populárně známé jako Ostrov izolace.