Java'daki İzolasyon Adası

Java'daki İzolasyon Adası

Java'da nesnelerin imhası, çöp toplayıcı modül ve bunlara herhangi bir referansı olmayan nesneler çöp toplamaya uygundur. Çöp Toplayıcı bu tür nesneleri tanımlama yeteneğine sahiptir. Şimdi İzolasyon Adası'nın tam olarak ne anlama geldiğini şu şekilde tartışalım:

  • Nesne 1, Nesne 2'ye referans verir ve Nesne 2, Nesne 1'e referans verir. Ne Nesne 1'e ne de Nesne 2'ye başka herhangi bir nesne referans vermez. Bu bir izolasyon adası.
  • Temel olarak bir izolasyon adası, birbirine referans veren ancak uygulamadaki herhangi bir aktif nesne tarafından referans verilmeyen bir nesne grubudur. Kesin olarak söylemek gerekirse, referans verilmeyen tek bir nesne bile bir izolasyon adasıdır.

Örnek:

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

Çıkış:



Java

Çıkış Açıklaması:  

  • Çöp Toplayıcı, bir nesneyi yok etmeden önce o nesne üzerinde en fazla bir kez finalize yöntemini çağırır. Bunun nedeni, yukarıdaki örnekte finalize() yönteminin iki kez çağrılmasının nedeni, iki nesnenin çöp toplamaya uygun olmasıdır. Bunun nedeni, t2=null komutunu çalıştırdıktan sonra t1 ve t2 nesnelerine herhangi bir dış referansımızın olmamasıdır.
  • Elimizdeki tek şey, yalnızca birbirlerine yapılan dahili referanslardır (bu, örneğin Test sınıfının i değişkenidir). Her iki nesnenin örnek değişkenini çağırmamızın bir yolu yoktur. Yani nesnelerin hiçbiri tekrar çağrılamaz ' t2.i  =  t1 '
Java
  • Her iki nesnenin de dış referansları t1 ve t2'dir.
  • t1 = sıfır : Her iki nesneye de sırasıyla t2.i ve t2 yoluyla ulaşılabilir. t2 = boş: Nesnelerin hiçbirine ulaşmanın yolu yok. 
     

Artık her iki nesne de çöp toplamaya uygun onları aramamızın hiçbir yolu yok . Bu halk arasında şu şekilde bilinir: İzolasyon Adası.


En Makaleler

Kategori

Ilginç Haberler