jvm垃圾回收器中使用的算法

java高级交流群 37341439     无下限,不搞歧视,欢快的交流~

1:引用计数法(经典,古老)
     有对象引用count+1,当count为0时,回收。
     当a引用b,b引用a时,就会出现无法回收的情况,所以java垃圾回收器没有使用这种算法。

2:标记-清除算法
     缺点:造成空间碎片
     从根节点找所有可达对象,然后清除所有不可达对象,容易产生很多不连续的空间,造成空间浪费     

3:复制算法
     适用于:垃圾对象多,存活对象少。
     新生代适用这种算法;
     效率高,但是需要内存分半

4:标记-压缩算法
     老年代适用这种算法
     从根节点找所有可达对象,然后将可达对象移动到连续的内存空间,然后清除所有不可达对象。保证了内存的连续。

5:增量算法
     其他算法都是一次性处理垃圾,如果处理时间很长,则会停顿很长时间。这种算法,垃圾收集线程会和应用程序线程进行切换,避免长时间的系统停顿,但是由于线程的切换造成了上下文的切换消耗,总的回收成本会上升。
     
6:分代算法
     在新生代使用复制算法
     在老年代使用标记压缩算法


以上6中算法都是给垃圾回收器使用的;
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值