JVM垃圾回收机制

判断垃圾的算法一般用引用计数法和可达性分析算法。

可达性分析算法中的Gc Root一般是虚拟机栈中引用的对象,方法区中的静态属性或常量引用的对象,本地方法栈中(Native方法)引用的对象。

垃圾回收算法有三种,标记清除算法、标记整理算法和复制算法。

 大部分初始new的对象分配在eden空间,在eden空间中垃圾比较多,为了提高效率,使用复制算法,经过一次MinorGC后,对象存储到Suvivor空间中;大对象和长期存活的对象(年龄超过默认值15;Survivor区中相同年龄的所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象)直接进入老年代,老年代的垃圾会受算法使用标记清除算法或者标记整理算法。

MinorGC发生在新生代,MajorGC发生在老年代,FullGC发生在堆空间(包括新生代和老年代),FullGC与MajorGC等价。

Minor GC触发条件:Eden区满时

Full GC触发条件:
(1)调用System.gc时,系统建议执行Full GC,但是不必然执行
(2)老年代空间不足
(3)永久代空间不足
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值