文章目录
快速回忆
GC类型?
Minor GC:发生在年轻代的 GC。时时刻刻都在发生
Full GC:发生在老年代的 GC。慢,比Minor GC慢10倍以上
垃圾收集算法?/ GC算法?
引用计数法(被引用的对象就不清除,循环引用解决不了,所以被淘汰了)
标记清除(会产生大量不连续的碎片)
标记整理(效率比前两者差)
复制算法(浪费空间)
分代收集算法
老年代一般使用“标记-清除”、“标记-整理”算法,年轻代一般用复制算法。
- 因为新生代中,每次收集都会有大量对象死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。
- 老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择“标记-清除”或“标记-整理”算法进行垃圾收集。
垃圾收集器
(1)4种主要垃圾收集器
- Serial串行回收:只使用一个线程进行垃圾收集
- Parallel并行回收:多个线程
- CMS并发标记清除
- G1
(2)JVM默认的垃圾收集器有哪些
Java中一共有7大垃圾收集器:</