我已经通过在线阅读了一些Java垃圾收集指南,但我仍然有点不清楚,希望确保在代码中没有内存泄漏。如果实例变量仍然有引用,Java GC是否销毁对象?
Java GC是否收集丢失其引用的对象,但其变量仍有参考?
所以我们可以说我有SomeObject:
public class SomeObject {
public ObjectVar var;
public SomeObject() {
var = new ObjectVar();
}
}
而且我的代码:
SomeObject obj1 = new SomeObject();
SomeObject obj2 = new SomeObject();
obj2.var = obj1.var;
obj1 = null;
所以OBJ1的变种具有一定的参考,但OBJ1不再有任何引用。那么,GC是否会销毁obj1,但保持var还活着? (我假设如此,只是想确定)。谢谢!
GC的基本规则是,如果GC对一个对象会影响你的程序,它不会发生。 (除非你使用关注GC的专门工具,但如果你使用的话,你会知道的。) –
你可能想阅读[“中年危机”](http://blogs.msdn。 COM/b /瑞康/存档/ 2003/12/04/41281.aspx)。 – Mehrdad