我已經通過在線閱讀了一些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