内部对象的垃圾收集

时间:2009-07-08 12:37:32

标签: garbage-collection

class Stage
{

  Actor act1 = new Actor(); 
  Actor act2 = new Actor();
  Actor act3 = new Actor();

}

Stage stg = new Stage();

垃圾收集在这种情况下如何在java中运行?

stg = null;

创建的三个对象act1act2act3是否也会收集垃圾?

3 个答案:

答案 0 :(得分:1)

是。

当垃圾收集器运行时,它将看到对旧对象的引用消失,并将其清理干净。下次运行时,它会看到现在没有任何东西引用其他三个对象,并将它们清理干净。

从概念上讲,无论如何;我敢肯定,大多数垃圾收集者会比实际情况更聪明,并且一次性获得它们。确切的机制会有所不同。

答案 1 :(得分:0)

当每个对象的引用计数为0时,GC将全部收集它们。

答案 2 :(得分:0)

如果没有更多的引用,它们将是垃圾收集。不要忘记从外部删除附加的EventListener因为它们也被视为参考(只要您不使用weak-reference)。