空间分配担保

博客介绍了JDK版本默认垃圾收集器,jdk1.7和1.8默认是Parallel Scavenge(新生代)+Serial Old(老年代),其中Parallel Scavenge新生代用复制算法,老年代用标记 - 整理算法。还阐述了JVM默认启用的空间分配担保机制,以及禁止该机制或老年代内存不足时会发起FULL GC。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDK版本默认垃圾收集器:

  • jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Serial Old(老年代)
  • jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Serial Old(老年代)

垃圾收集器Parallel Scavenge:

  • 新生代采用复制算法
  • 老年代采用标记-整理算法

jvm默认启用空间分配担保:-XX:+HandlePromotionFailure
跟复制算法有关,如果不了解复制算法请先去了解一下

大致理解:因为eden区容纳不下接下来对象B所需内存的大小,虚拟机将发起一次 Minor GC,GC期间虚拟机又发现之前的对象A无法存入 Survivor 空间,所以只好通过分配担保机制把新生代的对象A提前转移到老年代中去,老年代有足够的内存存放,所以不会出现 Full GC。
如果禁止了空间分配担保,或者老年代内存空间不足,则会发起一次FULL GC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值