垃圾回收算法有哪些 ?

  • 引用计数法

    • 每一个对象都会为他创建一个计数器,记录他的次数,通过使用次数来判断是否需要垃圾回收,但是为每一个对象创建计数器是一种资源的消耗

  • 复制算法

    • 每次GC都会将伊甸园中存活的对象放到幸存区,而伊甸园和from被GC后会变成空的(GC时会把from里面的对象伊甸园存活的对象复制到To,这时from变成空的,to区变成有两个对象,这时from和to名字就交换了,from变to,to变from,因为to一定是空的)

    • from和to是一直在变换的,to一定是空的

    • 最佳的使用场景:对象存活率较低的时候,复制算法主要在新生区(伊甸园和幸存区)发挥作用

    • 优点:没有内存碎片

    • 缺点:浪费内存空间(多了一个幸存区,有一半的幸存区一直是空的,也就是to区)

  • 标记清除法

    • 先扫描对存活的对象进行标记,第二次扫描对没有标记的对象进行清除

    • 优点:不需要额外的空间,也就是复制算法中的幸存区

    • 缺点:两次扫描严重浪费时间,会产生内存碎片

  • 标记压缩法

    • 在标记清除法的基础上再进行一次扫描,把存活的对象放到一端,这样就可以消除内存碎片,内存碎片就是不连续的内存空间,这样不连续的内存空间就被放到一起变成连续的内存空间

    • 多了一次移动和扫描的成本

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值