垃圾回收器

2018-09-29  本文已影响0人  简约而不简单powerful

目前市面上的垃圾回收期主要分为四种,

1.标记-清理

2.复制算法

3.标记-整理

4.新生代和老年代

开局一张图,内容全靠编,下面上图

新生代老年代图

下面主要针对新生代和老年代讲讲

现在的jvm体系主要分为方法区和堆等。

而方法区过去放在永久代,存放在JVM中,新版本中已将永久代废弃,引入元空间的概念,元空间的内存是放到物理内存中的。只有堆中的新生代和老年代是放到JVM内存中的。

新生代、老年代并不是新的算法,只是把标记-清楚,复制和标记-整理放到一起使用。

新生代中分成Eden、Survior from 、Survior to,之间的比例是8:1:1

老年代中主要放存活率比较高的对象和大对象。使用标记清理或标记整理算法。

新产生的对象先放到Eden中,Eden满了之后,再放到Survior from 中,如果这两块内存都满了,就把Eden和Survior from 中存活的对象copy进Survior to中,清空Eden和Survior from ,Survior to 就转变成Survior from 。

如果Survior to无法容纳全部存活的对象,就将存活的对象copy进老年代,如果老年代也容纳不下,就进行full GC(老年代GC)

上一篇下一篇

猜你喜欢

热点阅读