深入理解Java虚拟机:内存分配与回收策略

对象优先在Eden分配

对象在新生代分配

当Eden区没有足够的空间分配时,触发Minor GC

大对象直接进老年代

长期存活的对象进入老年代

当XX:MaxTenuringThreshold=1时:当XX:MaxTenuringThreshold=15时:

动态对象年龄判定

HotSpot并不是永远要求对象的age达到XX:MaxTenuringThreshold所位置的,如果Survivor空间中相同年龄所有对象大小的综合大于Survivor空间的一半,大于等于这个年龄的对象也会进入到老年代。

空间分配担保

JDK6之前

当-XX:HandlePromotionFailure=true时:

当-XX:HandlePromotionFailure=false时:

JDK 6之后:

缺少了-XX:HandlePromotionFailure参数的判断,所示JDK 6之后这个参数是被废弃的。

HotSpot空间分配检查的代码片段

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200425A0QUWM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券