垃圾收集

判断对象是否存活:引用计数算法、可达性分析算法(finalize)

引用:强引用、软引用(第二次回收)、弱引用(下次垃圾收集之前)、虚引用

垃圾收集算法:标记-清除算法(效率不高、内存碎片)、复制算法(eden、survivor;担保机制)、标记-整理算法、分代收集算法

垃圾收集器

jvm学习-内存分配及垃圾回收

serial收集器:单线程收集器、垃圾收集时暂停其他所有工作线程;client模式下默认的新生代收集器;

jvm学习-内存分配及垃圾回收

parnew收集器:serial收集器的多线程版本;

jvm学习-内存分配及垃圾回收

Parallel Scavenge收集器:标准是达到一个可控制的吞吐量(运行用户代码时间/(运行用户代码时间+垃圾收集时间));停顿时间下降吞吐量也下降;

Serial Old收集器:单线程收集器;client模式下虚拟机使用;在service模式 下(1、与Parallel Scavenge收集器搭配使用2、作为cms收集器的后备方案);

Patallel Old收集器:Parallel Scavenge收集器的老年版本,使用多线程和“标记-整理”算法

jvm学习-内存分配及垃圾回收

CMS收集器:获取最短回收停顿时间为目标的收集器。“标记-清除”算法;(初始标记》并发标记》重新标记》并发清除)

jvm学习-内存分配及垃圾回收

G1收集器:

内存分配

1、对象优先在Eden分配

2、大对象直接进入老年代

3、长期存活的对象进入老年代

4、动态对象年龄判断

5、空间分配担保



相关文章: