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 次浏览

开启你的事业

完成课程,获得证书

立即开始
广告