[TOC]
垃圾回收中的分代回收
年轻代空间
- eden 分区: 新生成的 java 对象 会存储在该分区
- from/to 幸存者分区: 当eden发生GC后,幸存的java对象 会存储在该分区
年轻代 GC 大致流程:
- 绝大多数新生成的对象保存在 Eden 分区中。
- 当 Eden 分区被填满时,Minor GC 被触发并且 所有 幸存下来的java对象会被转移到 from/to 分区中。
- Minor GC 会核查 幸存的java对象,并将他们转移到另一个 幸存者分区(from/to)中。因此 总会有一个 幸存者分区为空。
- 当 经过多次 Minor GC后,仍然幸存的java对象会被转移到 Old 分区中
老年代空间
- old 分区: 在幸存者分区多次GC后仍然幸存下来的java对象,会被存储在old分区
优质文章
Java (JVM) Memory Model – Memory Management in Java
Sizing the Generations
JVM内存模型及内存分配过程