當Tester類的主要方法達到其結尾時,有多少個對象有資格進行垃圾回收?我的印象是答案是兩個,特別是a1,b1。不過,我發現某處作爲corect的答案,只有a1對象符合條件。我認爲既然我們沒有在a2中將b1賦值爲成員變量,那麼在主結束之前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;
}
}