判断对象存活的算法有:
1,引用计数算法
2,根搜索算法(JAVA采用这种算法判断对象是否存活)
垃圾收集算法
1,标记清除算法
2,复制算法
3,标记整理算法
4,分代收集算法
垃圾收集器
Serial | 新生代 | 单线程 | 复制算法 | CMS,Serial Old | |
ParNew | 新生代 | 多线程 | 复制算法 | CMS,SerialOld | |
Parallel Scavenge | 新生代 | 多线程 | 复制算法 | 控制吞吐量 | Serial Old,Parallel Old |
Serial Old | 老年代 | 单线程 | 标记整理 | ||
Parallel Old | 老年代 | 多线程 | 标记整理 | ||
CMS | 老年代 | 标记清除 | 并发低停顿 | Serial Old | |
G1 | 新生代/老年代 | 标记整理 |
Parallel Scavenge不能与CMS配合使用,是由于Parallel Scavenge和G1都没有使用传统的GC收集器代码框架,而另外独立实现,而其余收集器则共用了部分的框架代码