JVM(四) 垃圾回收的算法

一、哪些对象需要被回收(对象已死?先判断)
1.1 引用计数器(Java垃圾回收器从来没用过)
2.2 可达性分析算法
在这里插入图片描述
如果能被 GC Root找到的就是可达的。那哪些能被看成GC Root?
a, 虚拟机栈中本地变量表引用的对象
b, 方法区中 类静态变量引用的对象 & 常量引用的对象
c, 本法方法栈中JNI引用的对象
其实 GC Root 不可达的 像比如图中D对象,还是会再挽救一次 finalize()

二、判断完了以后,就是怎么回收。垃圾回收算法
2.1 标记-清除算法: 效率不高,有空间碎片
在这里插入图片描述
2.2 复制算法 : 没有碎片,但得分一块出来复制用,内存利用率(分一半内存)有问题
在这里插入图片描述

2.3 标记整理算法 :(8:1:1 新生代) 用的时间有点长
在这里插入图片描述
2.4 分代收集:根据不同的分代选择不同的算法。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值