Java入门之了解JVM(31)

即先对“垃圾”进行标记,然后进行内存整理,整理后再清除图片源自网络

Java入门之了解JVM

从上图看出,标记-整理,先将存活的对象标记,然后将其整理到一边,最后将边外的空间全部清除标记-整理算法在回收对象存活率普片低下的内存区域方法并没有复制算法高效,标记-整理算法定位在对象存活率高的内存,且不想造成内存碎片化的情况,如JVM的分代收集算法就用标记-整理算法作用在老年代堆内存的划分

图片源自网络

Java入门之了解JVM

JVM对堆内存的划分分为:新生代 和 老年代 两个区域其中新生代又分为:Eden 、form(survivor0/s0)、to(survivor1/s1),三块内存的比例是8:1:1新生代

几乎所有新建的对象都在该内存区域中分配,除了一些像数组这样内存连续的大对象会直接在老年代分配之外据了解IBM专门对新生代中的对象进行了分析,得出的结论是在新生代中的对象有98%都是“朝生夕死”的,所以新生代中采用的垃圾回收算法是复制算法新生代中2块内存是如何使用复制算法的?

推荐阅读