GC 四大算法

1.引用计数法(不推荐)

每一个对象都会有一个引用计数器,引用一次+1,引用失败-1,当引用次数为0时,会将该对象回收

缺点:计数器维护麻烦,循环引用(两个对象互相引用)无法处理

可达性算法

2.复制算法

Eden - S0 - S1 - old

第一次引用时,复制到S0,第二次医用复制到S1,由 from 区 -> to区。谁空谁是to

(1)一般普通的GC之后,Eden差不多为空

(2)每次存货的对象,从from和Eden复制到to,当复制到to区,from区会清空,并与to交换;

(3)每幸存一次,年龄+1,当年龄>15(默认可改,但不能超过15)进入养老区

优点

没有标记和清除过程,效率高,无内存碎片

缺点

to区始终为空,需要双份空间,浪费资源

使用

Eden区对象存活率极低,基本使用一次就失效,所以推荐使用复制算法

3.标记清除算法

老年代使用,但会与整理压缩一起使用

①标记,扫描一次,对活得对象标记

0 1 0 1 0

②清除:再扫描一次,回收未标记对象

0 1 0 1 0

优点

不需额外的空间,标记两次,会浪费时间 时间换空间

缺点

①扫描两次,如果空间过大,耗时严重

②每次清除完,会将清楚地位置空出来,产生内存碎片

4.标记清除压缩算法

标记清除算法基础上,将标记对象华东道一侧

1 1 0 0 0

优点

减少标记清除缺点,无内存碎片

缺点

①扫描三次,耗时严重

②可以用于空间少,很少或者不经常使用GC的情况

小结

内存效率: 复制算法>标记清除算法>标记压缩算法

整齐度:复制 = 标记清除压缩算法 > 标记清除算法

利用率:标记清除算法 = 标记清除压缩算法 > 复制算法

年轻代

相对老年代存活低,使用复制算法 why:效率高,无内存碎片

老年代

区域大,存活率高,不经常GC 标记清除压缩算法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值