二(2)深入了解java虚拟机JVM(垃圾收集器与内存分配策略GC)

上一篇博客讲述了jvm的垃圾回收策略的方法论,这一篇记录jvm的几种收集器,以及内存分配策略,包含面试时常会问到的FullGC问题。

目前商业虚拟机的垃圾收集器都采用“分代收集”算法;就是根据对象的存活周期的不同把内存划分为几块,一般是分为新生代和老年代。前面提到了新生代的特点是内存回收的频率比较高,每次收集垃圾时,都有大量的对象死去,只有少量存活,所以采用复制算法的效率较高。而老年代中因为对象的存活率高,没有额外的内存对他们进行分配担保,所以采用“标记-清理”或者“标记-整理”算法(“标记-整理”效率会低)。所以基于不同的应用场景,jvm有很多垃圾收集器,如下图所示,来自(深入了解jvm课本);

二(2)深入了解java虚拟机JVM(垃圾收集器与内存分配策略GC)
jvm目前的垃圾收集

 

垃圾收集器之间可以结合使用。各个收集器关系如下图所示:

二(2)深入了解java虚拟机JVM(垃圾收集器与内存分配策略GC)
垃圾收集器

不足之处,还请批评指正