class Stage
{
Actor act1 = new Actor();
Actor act2 = new Actor();
Actor act3 = new Actor();
}
Stage stg = new Stage();
垃圾回收在java场景中的表现如何?内部对象的垃圾回收
stg = null;
将三个对象创建act1
,act2
和act3
也得到垃圾回收?
class Stage
{
Actor act1 = new Actor();
Actor act2 = new Actor();
Actor act3 = new Actor();
}
Stage stg = new Stage();
垃圾回收在java场景中的表现如何?内部对象的垃圾回收
stg = null;
将三个对象创建act1
,act2
和act3
也得到垃圾回收?
当每个对象的引用计数为0时,GC将收集它们全部。
是的。
当垃圾收集器运行时,它会看到对旧对象的引用已经消失,并将其清理干净。下一次运行时,它会看到现在没有任何指向其他三个对象,并且也清理它们。
从概念上讲,无论如何,我相信大多数垃圾收集者会比实践中的智能更聪明一点,并且一次就能完成。确切的机制会有所不同。
如果没有更多引用它们,它们将被垃圾回收。不要忘记从外部删除附加的EventListener
,因为它们也算作参考(只要您不使用weak-reference
)。
所以这意味着我不需要专门设置内部对象为null。他们会自动处理。 谢谢 – krisp 2009-07-08 13:04:26