#####3.4 分代收集算法
当前 JVM 垃圾收集都采用的是 "分代收集 (Generational Collection)" 算法, 这个算法并没有新思想, 只是根据对象存活周期的不同将内存划分为几块.
一般是把 Java 堆分为新生代和老年代. 在新生代中, 每次垃圾回收都有大批对象死去, 只有少量存活, 因此我们采用复制算法; 而老年代中对象存活率高, 没有额外空间对它进行分配担保, 就必须采用 "标记 - 清理" 或者 "标记 - 整理" 算法.
面试题: 请问了解 Minor GC 和 Full GC 么, 这两种 GC 有什么不一样吗?
Minor GC 又称为新生代 GC : 指的是发生在新生代的垃圾收集. 因为 Java 对象大多都具备朝生夕灭的特性, 因此 Minor GC(采用复制算法) 非常频繁, 一般回收速度也比较快.
Full GC 又称为老年代 GC 或者 Major GC : 指发生在老年代的垃圾收集. 出现了 Major GC, 经常会伴随至少一次的 Minor GC(并非绝对, 在 Parallel Scavenge 收集器中就有直接进行 Full GC 的策略选择过程).Major GC 的速度一般会比 Minor GC 慢 10 倍以上.
来源: http://www.bubuko.com/infodetail-3075868.html