当 Tester 类的 main 方法结束时,有多少对象符合垃圾回收条件?我的印象是答案是两个,特别是a1,b1。但是,我在某个地方找到了正确的答案,只有 a1 对象符合条件。我认为,由于我们没有将 b1 分配为 a2 中的成员变量,因此 b1 在主结束之前被分配为 null,它应该由垃圾收集器收集。什么是真的?
class B {
}
class A {
static B b1;
B b2;
}
public class Tester {
public static void main(String[] args) {
B b1 = new B();
B b2 = new B();
A a1 = new A();
A a2 = new A();
a1.b1 = b1;
a1.b2 = b1;
a2.b2 = b2;
a1 = null;
b1 = null;
b2 = null;
}
}