若何確定垃圾之引用計數法
 若何確定垃圾之可達性闡發法,為領會決引用計數法中輪回引用問題,java利用了可達性闡發法,經由過程一系列的GC roots對象作為起點搜刮。
 標識表記標幟斷根算法:最根本的垃圾收受接管算法,分為兩個階段,標注和斷根。標識表記標幟階段會標識表記標幟出所有需要收受接管的對象,斷根階段收受接管被標識表記標幟的對象所占用的空間,如圖所示,從圖中我們可以看到,該算法最大的問題是內存碎片化嚴重,后續可能會發生大對象找不到可操縱的空間。
 復制算法:為領會決標識表記標幟斷根算法內存碎片化的缺陷而被提出的算法。按內存容量將內存劃分為等巨細的兩塊。每次只利用此中一塊,當這一塊內存滿后將尚存活的對象復制到另一塊去,把已利用的內存清失落,如圖所示。這種算法固然實現簡單,內存效率高,不易發生碎片,可是最大的問題是可用內存被壓縮到了本來的一半。且存活對象增多的話,copying算法的效率會大大降低。
 標識表記標幟清算算法:連系了以上兩個算法,為了避免缺陷而提出。標識表記標幟階段和標識表記標幟斷根算法不異,分歧的是標識表記標幟后不是清理對象,而是將存活對象移標的目的內存的一端。然后斷根可收受接管對象。如圖:
 分代收集算法是今朝大部門JVM所采用的方式,其焦點思惟是按照對象存活的分歧生命周期劃分為分歧的域,一般環境下將GC堆劃分為新生代和老年月。老年月的特點是每次垃圾收受接管時只有少量對象需要被收受接管,新生代的特點是每次垃圾收受接管時都有大量的垃圾需要被收受接管,是以可以按照分歧區域選擇分歧的算法。
 
 
 END0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!