JVM提问----个人笔记,不喜勿喷

  • 什么时候会尝试触发Minor GC

新生代内存区域基本快满了,再次分配对象的时候,发现空间不足

  • 触发Minor GC之前会检查老年代大小?
  1. 检查老年代可用内存空间,是否大于新生代所有对象的总大小,如果大于新生代所有对象,就可以发起Minor GC
  2. 老年代可用空间小于新生代的所有对象大小,检查'-XX:HandlePromotionFailure'的参数是否设置,如果设置了,就检查老年代的内存大小,是否大于之前每一次Minor GC后进入老年代对象的平均大小,如果大于就进行Minor GC
  3. 如果没有设置'-XX:HandlePromotionFailure'参数,此时就会触发一次Full GC,尽量腾出一些空间,然后再执行Minor GC
  • 什么时候在Minor GC之前会触发一次Full GC

Minor GC后的对象太多,无法放入 survivor区

  • Full GC的算法是什么?

标记整理算法

  • Minor GC之后可能对应哪几种情况?
  1. 剩余存活的对象大小,小于survivor区,此时存活对象进入survivor区
  2. 剩余存活的对象大小,大于survivor区,但是小于老年代可用空间,直接进入老年代
  3. 剩余存活的对象大小,大于survivor区,大于老年代可用空间,就会触发Full GC
  • 哪些情况下Minor GC的对象会进入老年代?
  1. Minor GC 15次的对象会进入老年代,就是说超过年龄的对象
  2. 大对象
  3. Minor GC之后剩下的对象超过survivor区大小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值