JVM垃圾回收算法
垃圾回收算法:
- 标记-清除算法
- 标记无用对象,再进行清除回收
- 无法清除垃圾碎片,不需要移动对象
- 复制算法
- 按容量划分2个相等的内存区域。当一块用完,将活着的对象复制到另一块上,再对当前使用区域清除
- 每次只使用一个区域,内存使用率不高。对于存活率高的对象频繁复制
- 标记-整理算法
- 标记无用对象,让活着的对象向内存一端移动,再清除端边界外的内存。回收后,已用和未用的内存各自一边
- 解决标记-清除算法的内存碎片问题
- 局部移动活着的对象
- 分代算法
- 根据对象存活周期的不同将内存划分几块。一般是新生代和老年代,永久代
- 新生代采用复制算法,老年代采用标记整理算法
垃圾回收器:
新生代:
- serial(复制算法):标记和清理都是单线程
- parnew(复制算法):serial多线程版本
- parallel scavenge(复制算法):并行,高吞吐量
年老代:
- serial old(标记-整理算法):serial老年代版本
- parallel old(标记-整理算法):parallel scavenge老年代版本
- CMS(标记-清除算法):并行,高并发、低停顿
g1(标记-整理算法):java堆并行,jdk1.7提供。
特点:范围是java堆,包括新生代,老年代;不会产生内存碎片
这里需要注意一点:
一般情况,对象分配在新生代的Eden区,有几种情况,对象放在老年代,大对象和长期存活的对象
相关推荐
湾区人工智能 2020-11-20
Pokemogo 2020-11-16
baijingjing 2020-11-16
baijingjing 2020-11-15
Site 2020-11-07
lwnylslwnyls 2020-11-06
justaipanda 2020-11-05
MachineIntellect 2020-11-02
xueyuediana 2020-10-30
GeraldJones 2020-10-30
Tips 2020-10-29
baijingjing 2020-10-28
baijingjing 2020-10-27
硕鼠 2020-10-26
playoffs 2020-10-26
scuyxi 2020-10-25
playoffs 2020-10-25
yise001 2020-10-23