public class Tahiti {
Tahiti t;
public static void main(String[] args) {
Tahiti t = new Tahiti();
Tahiti t2 = t.go(t);
t2 = null;
System.out.println(t2);
}
Tahiti go(Tahiti t) {
Tahiti t1 = new Tahiti();
Tahiti t2 = new Tahiti();
t1.t = t2;
t2.t = t1;
t.t = t2;
return t1;
}
}
问题是此过程一共有多少个对象满足垃圾回收的条件?
答案是 0 个
想问下原因,t2 = null; 之后 t2不满足回收条件吗? 大大路过麻烦指点迷津 希望推荐一下垃圾回收的文章。
------解决方案--------------------
是因为 t.t=t2; t2.t=t1; 而这个t,在main方法里还是有引用的。
------解决方案--------------------
总共new了三个对象 t持有了t2 t2持有了t1
所以三个对象都不会被回收