GC垃圾回收机制

垃圾回收主要发生在堆区

先了解一下堆区的结构

在这里插入图片描述
首先GC主要分为大GC和小GC,小GC主要分布在新生区,大GC
主要发生在养老区,当伊甸区达到最大容量的百分之七十的时候就会触发小GC,当在伊甸区的每个对象熬过一次就会到达幸存者区,幸存者区可以分为from区和to区,谁是空的谁就是to区,当在幸存者区熬过一定次数的对象就会到达养老区,当养老区满时,就会触发大GC。

GC算法一般包括 复制算法,标记清除算法,标记整理算法。

1.新生代一般使用复制算法

复制算法:将活动对象复制到另一个空间,然后把原来的空间清空。
优点:布局比标记清除算法要整齐
缺点:当存活对象过多时,耗费大量的内存。

2.老年代一般都是标记整理和标记清除混合使用。

标记清除算法:对存活的对象进行标记,然后对扫描整个内存,回收未被标记的对象。
优点:不会有额外的 空间
缺点:进行两次扫描,耗时严重。会产生大量的碎片。

标记整理算法:标记所有的存活对象,然后整理所有存活的对象的引用地址。
优点:内存利用率比较高。
缺点:效率是最慢的。

总结:在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章