1.什么样的对象被JVM定义为应该回收的垃圾
1.1 引用计数法
如果 一个对象没有指向自己的引用,即该对象被引用的计数为0(即说明该对象不可能再被使用)。优点:速度快,缺点:无法解决循环依赖的问题。
1.2 不可达分析
通过GC roots的对象作为搜索的起点,如果一个对象,通过roots搜索不可达,那么说明这个对象是可能被回收的对象(不可达对象变为可回收对象至少要经过两次标记过程,两次标记后仍然是可回收对象,则将面临回收)。
2. 垃圾回收算法
2.1. 标记-清除算法(Mark-Sweep)
2.2 复制算法(Copying)
2.3. 标记-整理算法(Mark-Compact)
2.4. 分代收集算法(Generational Collection)
3. JVM垃圾收集器
3.1. Serial/Serial Old
3.2. ParNew
3.3. Parallel Scavenge
3.4. Parallel Old
3.5. CMS
3.6. G1
网友评论