Java 中的隔离岛

javaobject oriented programmingprogramming更新于 2025/7/6 17:16:17

对象使用后,会使用垃圾收集器类将其从内存中释放。对象被销毁是基于不存在对该对象的引用这一事实。垃圾收集器类对需要销毁的对象调用‘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 的类包含主函数。这里,创建了 Demo 类类型的变量。创建了 Demo 类的实例,并将第二个对象分配给第一个对象的 Demo 对象。对第二个对象也以相反的方式执行相同操作。现在,这两个对象都分配给 null,并调用 ‘System.gc’ 函数。现在,‘finalize’ 函数被覆盖。


相关文章


有用资源