一.堆内存结构模型如图所示:
二.结构模型介绍
1.堆内存分为新生代(Young Generation)与老年代(Old Generation) Y:O=1:3
2.年轻代分为Eden(伊甸园)与Survivor(幸存者),E:S=4:1
3.Survivor区分为大小相同的两个区,From Space与 To Space,F:T=1:1
4.堆内存在Java虚拟机启动时便会创建
三.内存申请过程
1.新创建对象时会在堆内存的Eden中申请一块内存
2.如果Eden中内存空间充足,则直接为新创建的对象分配内存
3.如果Eden中内存不足以再容纳一个新对象时,触发Minor GC
4.Minor GC过程如下:
- ①清除Eden中所有的非活跃对象
- ②若Survivor区的To Space空间不足时,需要将Eden所有对㛑对象象移至老年代中
- ③若Survivor区的To Space空间充足时,将Eden中的活跃对象全部复制到To Space中,并将Eden清空