深入理解虚拟机和垃圾回收------JVM垃圾回收流程

  1. 当现在有一个新的对象产生,那么对象一定需要内存空间。于是现在就需要为该对象进行内存对象的申请。
  2. 首先会判断伊甸区是否有内存空间,如果此时有内存空间,则将新对象保存到伊甸区中。
  3. 但如果伊甸区的内存空间不足,那么会自动执行一个Minor GC操作,将伊甸区无用的内存空间进行清理,当清理之后会继续判断伊甸区的空间是否充足?充足则将新的对象进行空间分配。
  4. 如果执行Minor GC发现伊甸区的内存仍然不足。那么这个时候会进行存活区的判断,如果存活区有剩余空间,则将伊甸区的部分对象保存在存活区,那么随后继续判断伊甸区的空间是否充足,如果内存充足,则在伊甸区进行空间分配。
  5. 如果此时存活区也已经没有内存空间了,则开始判断老年区。如果此时老年区的空间充足,则将存活区中的活跃对象保存在老年代,而后存活区就会存现有空余空间。随后,伊甸区将活跃对象保存在存活区中,而后在伊甸区里为新对象开辟内存空间。
  6. 如果这个时候老年代也满了,那么这个时候将产生Major GC(FULL GC),进行老年代的内存清理
  7. 如果老年代执行了FULL GC之后,依然无法进行对象的保存,就会产生OOM()y异常OutOfMemoryError

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值