JVM堆中新对象申请内存过程详细图以及升老年代四种情况 标注
JVM升老年代四种情况
1. 担保机制
当Survivor区的的内存大小不足以装下下一次Minor GC所有存活对象时,就会启动担保机制,把Survivor区放不下的对象放到老年代;
2. 大对象直接放入老年代
大对象(大小大于-XX:PretenureSizeThreshold的对象)直接在老年代分配内存;(只对Serial和ParNew收集器有效,对于Parallel Scavenge收集器无效)
3.长期存活的对象进入老年代
把age大于-XX:MaxTenuringThreshold的对象晋升到老年代;(对象每在Survivor区熬过一次,其age就增加一岁);
4.动态年龄判断
当 Survivor 空间中相同年龄所有对象的大小总和大于 Survivor 空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,而不需要达到默认的分代年龄。
堆中新对象申请内存流程图
脑图下载 地址 https://gitee.com/vx202158/vx202158
#java求职#