JVM内存分配策略
引自《深入理解Java虚拟机》
关键词:优先级,大对象,老不死对象
三个策略:
- 对象优先在Eden区分配
- 大对象直接进入老年代(大对象举例:很长的String,很长的数组)
- 长期存活的对象进入老年代
长期存活:从Eden出生,每经历一次Minor GC 年龄加1(出生时为0,年龄为1时已经在Survivor区),在年龄达到15(默认)时,就会晋升到老年代
注意:晋升到老年代还有一种情况:
Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,用公式表示为: