1.复制算法:
新生代采用的复制算法。From区到To区,以及To区到From区,就是采用的复制算法,来回移动。这样的好处是移动后,没有内存碎片。内存格式比较整齐。缺点就是需要分配一半儿的内存,来复制移动。所以新生代中有了Eden区,来提高内存的利用率。缩小复制算法的区域。
细节:new出来的对象,先放入Eden区。Eden区快满时,触发GC,将存活的对象移动到from区。清空Eden区。当Eden区再次满时,再次发生GC,将存活的对象放入To区,清空Eden区。同时,from区存活的对象,也移动到To区,年龄加一。以此类推。
2.标记-清除算法:
老年代采用的方式之一,先标记可以GC的对象,然后再清除对象。缺点:会造成内存空间不连续。两遍扫描。
3.标记-整理算法:
老年代采用的方式之一,标记GC对象后,对内存对象进行移动,使内存整齐。但是效率是最低的。
垃圾回收器
1.CMS:并发回收器,采用标记清除算法。
2.G1回收器: