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