這只是爲了闡明我對java垃圾收集複製收集器的理解。需要澄清java垃圾收集複製收集器
是不是相同的邏輯=>
我感動的葡萄一束從一個盒子到其他的,哪些是不一串葡萄都在盒子有資格進行垃圾回收離開了那裏。
有些人可能會發現我的理解很愚蠢,因爲我想在此澄清的一點是,檢查參考時所消耗的時間。
這只是爲了闡明我對java垃圾收集複製收集器的理解。需要澄清java垃圾收集複製收集器
是不是相同的邏輯=>
我感動的葡萄一束從一個盒子到其他的,哪些是不一串葡萄都在盒子有資格進行垃圾回收離開了那裏。
有些人可能會發現我的理解很愚蠢,因爲我想在此澄清的一點是,檢查參考時所消耗的時間。
葡萄的例子很好。
當GC工作效率最高時,它假定只有一小部分數據需要複製到下一個空間。如果您保留大部分數據,空間(伊甸園或倖存者)可能不夠大,或者您的數據中等壽命過長。 (其中GC不能很好地處理)
是,
Java使用「標記和清除算法」作出符合垃圾收集對象。
這與您的葡萄例子類似。 JVM將所有不再被引用的對象標記爲值'1',之後所有不符合條件的對象保持值'0'。算法運行時,它將掃描所有值爲「1」的對象。
當您使用「-XX:+ UseConcMarkSweepGC」啓用它時,它會使用標記和掃描,但僅適用於終身空間。 – 2012-01-04 08:12:46