GC的算法和种类

GC 垃圾回收

1960年List使用了GC

java中GC的对象是堆空间和永久区(hotspot虚拟机)

GC:处理的问题:什么对象该GC,怎么GC,什么时候GC

gc算法:(判断GC对象)

判断对象是否存活

1 引用计数法(COM,Python,ActionScript){很难处理循环引用的问题}

2可达性算法。(可触及,不可触及,可复活{finalize只会被调用一次如果这次没有被复活,就不可及了。finalize优先级比较低,调用具有不确定性})

3什么是根对象:1java虚拟机栈中的引用的对象2方法区中的静态成员或者常量

回收算法

3标记清除法(从根节点先标记可达对象,然后清除未被标记的对象)

4标记压缩算法(从根节点先标记可达对象,移动存活对象,清除存活界限外的对象)

5复制算法是标记清除算法的改进。不适用于存活对象较多的场景。将原有的空间分为2部分,每次只使用一块,垃圾回收的时候吧存活的对象复制到另一块,之后清除正在使用的那一块。(内存浪费严重)交换空间使用权即可

6分带思想:

短命的对象适用于复制算法

存活率高的对象适用于标记清除或者标记压缩

Stop-The-World:

java中全局暂停现象

多半由于GC产生

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值