GC算法

判定方法:

引用计数: 存储对特定对象的所有引用数, 回收引用计数为0的对象, 缺点是无法解决循环计数的问题(A 引用 B,B 引用 A)

引用链法: 通过一组 GC ROOT的对象作为起始点, 一个对象与GC ROOT没有引用链相连, 则说明对象可回收

可以作为GC ROOT的对象: java虚拟机栈中引用的对象, 本地方法栈中引用的对象, 方法区中静态属性引用的变量, 方法区中常量引用的变量

回收方法:

复制: 用于新生代, 将Eden区和from区中幸存的对象年龄加1, 如果年龄达到老年代要求, 则直接加入老年代, 没有则放入to区, 清空Eden和from区, 然后将to区的对象放入from区, 缺点是浪费内存空间

标记清除: 先标记需要清除的对象, 在统一回收, 缺点是会产生很多内存碎片

标记整理: 先标记需要清除的对象, 将存活对象移动到一端, 然后统一回收, 缺点是移动对象需要成本, 耗时

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值