gpt4 book ai didi

java - 垃圾收集孤立对象岛

转载 作者:行者123 更新时间:2023-11-30 05:56:39 25 4
gpt4 key购买 nike

我不明白“孤立物体的岛屿”的含义

class X2{  
public X2 x;

public static void main(String... args){
X2 x2 = new X2();
X2 x3 = new X2();
x2.x = x3;
x3.x = x2;
x2 = new X2();
x3 = x2;
doComplexStuff();
}
}

第 9 行运行后,有多少对象适合垃圾回收?起初我以为没有。但答案是两个。例如 x2.x 和 x3.x 会发生什么?它们也是物体,不是吗?说实话我不明白这个K&B问题。

最佳答案

在该示例中,您总共创建了 3 个对象(位于第 4、5 和 8 行)。我将它们分别称为 o1、o2 和 o3。 o1 被 x2 引用,o2 被 x3 引用。它们还包含彼此的引用(o1.x=x2.x 引用 o2,o2.x=x3.x 引用 o1)。当执行第8行时,o1不再被x2引用,但仍然被o2.x=x3.x引用。当执行第9行时,o2不再被x3引用,但仍然被o1.x引用。

此时o1和o2仍然互相引用。但是,没有其他对这些对象的引用,因此无法使用它们。因此,它们有资格进行垃圾收集。

关于java - 垃圾收集孤立对象岛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6855553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com