Java 中的孤島


物件使用後,它將使用垃圾收集器類從記憶體中釋放。物件的銷燬是基於不存在對該物件的引用的事實。垃圾收集器類對需要銷燬的物件呼叫“finalize”函式。

什麼是孤島?

當兩個物件“a”和“b”相互引用,並且它們不被任何其他物件引用時,這稱為孤島。

它是一組相互引用的物件,但它們並不被其他應用程式的其他物件引用。

注意 − 單個無引用的物件也是孤島。

我們來看一個例子 −

示例

 線上演示

public class Demo{
   Demo i;
   public static void main(String[] args){
      Demo my_ob_1 = new Demo();
      System.out.println("Demo object one has been created");
      Demo my_ob_2 = new Demo();
      System.out.println("Demo object two has been created");
      my_ob_1.i = my_ob_2;
      my_ob_2.i = my_ob_1;
      my_ob_1 = null;
      my_ob_2 = null;
      System.gc();
   }
   @Override
   protected void finalize() throws Throwable{
      System.out.println("The finalize method has been called on the object");
   }
}

輸出

Demo object one has been created
Demo object two has been created
The finalize method has been called on the object
The finalize method has been called on the object

一個名為 Demo 的類包含 main 函式。在這裡,建立了 Demo 類的變數。建立了 Demo 類的例項,併為第二個物件分配了第一個物件的 Demo 物件。使用第二個 do 物件以相反的方式執行相同操作。現在,這兩個物件都被分配為 null,並呼叫“System.gc”函式。現在,“finalize”函式被覆蓋。

更新於: 2020 年 7 月 4 日

989 次瀏覽

開啟你的事業

完成課程,獲得證書

立即開始
廣告