一、判断对象是否已经不会被使用
1、引用计数算法
对象每被引用一次,对象的引用计数器加1,反之减1 问题 :循环应用不能解决
2、可达性分析算法
GC Roots到该对象否有引用链
二、垃圾收集算法
1、标记清除算法
2、复制算法
新生代都采用这个算法,参数-XX:ServiorRatio
Eden +Survivor(fromServivor+toServivor)
3、标记整理
4、分代收集算法 当前商业虚拟机都采用的算法
新生代,复制算法
老年代:标记清除 或者标记整理
三、垃圾收集器
1 、新生代
1.1 Serial 收集器
单线程, 复制算法, 收集,stop the world
1.2 ParNew收集器 新生代只有这一个能与CMS收集器配合
多线程,复制算法,stop the world,如果使用这个参数 -XX:UseConcMarksSweepGC则默认新生代使用parNew收集算法,也可以使用-XX:UseParNewGC强制使用
1.3
2、老生代