JVM堆中新生代,老年代,永久代(思维导图)

JVM堆中新生代,老年代,永久代(思维导图)

 

新生代的GC过程叫做MinorGC,采用复制算法,流程如下:

(1)把在Eden区与ServivorFrom区中存活的对象复制到ServivorTo区。如果某对象的年龄达到老年代的标准(对象晋升老年代的标准由XX:MaxTenuringThreshold设置,默认为15),则将其复制到老年代,同时把这些对象的年龄加1。如果ServivorTo区的内存空间不够,则也直接复制进老年代。如果对象属于大对象(XX:PretenureSizeThreshold可配置),则也直接将其复制进老年代。

(2)清空Eden区和ServivorFrom区中的对象。

(3)将ServivorTo区和ServivorFrom区互换,原来的ServivorTo区成为下一次GC时的ServivorFrom区。