标记阶段
在标记阶段常见的有两种算法:
1.引用计数算法
2.可达性分析算法
清除阶段
清除阶段常用的垃圾收集算法有四种,1.标记-清除算法、2.标记-整理(压缩)算法、3.复制算法、4.分代算法(一种思想)
1.标记-清除算法(Mark-Sweep)
注意:这里标记的是可达的对象,即:没有被标记的对象就是垃圾对象需要清除。
为对象分配内存的方式:空闲列表分配
2.复制(Copying)算法
SO:新生代非常适合复制算法(后面学到的新生代垃圾收集器都是复制算法)
为对象分配内存方式:指针碰撞
标记整理(或者标记压缩 Mark-Compact 算法)
SO:后面关于老年代垃圾收集器(除CMS外标记-清除)都是标记整理算法
为对象分配内存的方式:指针碰撞
三种的对比
分代算法
补充:
1.增量收集算法
2.分区算法
G1垃圾收集器就是这种思想
感谢:康师傅^_^