GC算法——垃圾收集算法

GC作用区域:方法区+堆
GC(又称):分代收集算法

GC之引用计数法

给每一个对象分配一个计数器,若某对象用了0次,即会被当做垃圾清除。
在这里插入图片描述

GC之复制算法

每次GC都会将Eden存活的对象移到幸存区,Eden被GC后就空了

新生区主要用的复制算法

  • 优点:没有内存碎片
  • 缺点:浪费内存空间,多了一般空间永远是空的(to区)

GC之标记压缩清除算法

标记清除算法

过程: 回收的时候对存活对象进行标记,然后对没有标记的对象进行清除。

  • 优点:不需要额外的空间
  • 缺点:两次扫描,造成时间浪费,会产生内存碎片。

标记压缩算法

再次优化

压缩:防止内存碎片产生。再次扫描,向一端移动存活对象。
缺点:多了一个移动成本。
在这里插入图片描述

总结

内存效率:复制算法 > 标记清除算法 > 标记压缩算法(时间复杂度)
内存整齐度:复制算法 = 标记压缩算法 > 标记清除算法
内存利用率:标记压缩算法 = 标记清除算法 > 复制算法


年轻代:

  • 存活率低 --> 复制算法

老年代:

  • 区域大、存活率高 --> 标记清除(内存碎片少) + 标记压缩混合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值