Java垃圾收集算法

1、标记-清除算法

最基础的收集算法、主要对内存中的不使用的内存标记为可回收状态,进行回收

缺点: 标记、回收效率不高还会导致内存分配不够连续,容易触发新生代垃圾回收

2、复制算法

将可用内存分为两部分,每次只是用一部分,当其中一部分内存使用完之后,就将存活的对象复制到另外一块,然后对已使用的进行清理。

缺点:使用率降低、特别是对象存活率较高时需要频繁的复制操作,如果使用的一块对象都存活着会怎么样?

结论: 适用于新生代,少量内存

3、标记-整理算法

标记-清除算法的升级,让所有存活的对象向内存一端移动,然后清理掉边界以外的内存

结论: 适用于老年代,回收次数较少的场景

4、分代收集

根据对象存活周期将内存划分为几块,新生代划分为两块负责清理大量死去的对象和复制少量存活的对象,老年代对象存活率高,使用标记清理

新生代使用复制算法、老年代使用标记整理算法

 

posted @ 2019-08-27 16:50  酒窝没有酒  阅读(137)  评论(1编辑  收藏  举报