可能这是一个愚蠢的问题。
将对象标记为垃圾回收时,java是否还会将包含的对象标记为垃圾回收?
我的意思是,
class ContainerClass {
ContainedClass obj1, obj2;
//Constructor
ContainerClass() {
obj1 = new ContainedClass ();
obj2 = new ContainedClass ();
}
// main
public static void main( String args[]) {
ContainerClass c = new ContainerClass();
c = null ; // c is mared for GC. The question is c.obj1 and c.obj2 is also marked?
}
}
最佳答案
是的,如果仅ContainerClass
对象具有对它们的引用,则ContainedClass
对象将在ContainerClass
对象本身变为合格的同时变为有资格进行垃圾回收。
请注意,这些对象的实际集合可以独立发生。