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”函式被覆蓋。
廣告