2013-01-07 127 views
2

有關Java運行時垃圾收集器的一個簡短問題。Java垃圾收集器邏輯查詢

採取這樣的場景:

兩個物體都抱到另外一個參考。 沒有其他對象持有對這些對象的任何引用。 對象沒有做任何事 - 它們不是Runnables,如果它們的線程已經結束。

垃圾收集器是否會收集這些對象,因爲我正在大量使用這些對象,並通過切割引用「處理」這些對象......但它們真的被丟棄嗎?

+3

是的。 http://stackoverflow.com/questions/6366211/what-are-the-roots – ccleve

+0

另請參閱:http://stackoverflow.com/questions/1910194/garbage-collection-in-java-and-circular-references –

回答

1

是的,這些元素有資格收集。請參閱:

What are the roots?

他們是否會被收集或不可達的垃圾收集器。

+0

啊! ,如果我無法訪問它們,它們將被收集?或者至少這是我從該頁面獲得的想法? – Terra

+0

是的,但請記住垃圾收集器按照自己的時間表運行。對象可以長時間停留。唯一的保證是在你發生內存不足錯誤之前收集它們。 – ccleve