堆空间的基本结构

Java堆是垃圾收集器管理的主要区域,因此也被称作GC堆。

JVM堆空间的基本结构

对象从新生代到老年代的过程

“eden区”,“From”区和”To”区都属于新生代,“old”区属于老年代。

  1. 一般新生成的对象都出现在eden区。在一次新生代垃圾回收后,如果对象还存活,则会被复制到两个“survivor”区中的一个,假设是From区(From和To没有任何区别)。

  2. 当From区被填满时,这个区域经过垃圾回收人存货的对象将会被复制进‘To’区,原From区被清空,并且从eden区过来的数据将直接进入To区域。

  3. 当To区被填满时,之前从From区域过来的那部分数据如果仍在活动,则将会被放入老年代。

两个Servivor区域总有一个会是空的