Java垃圾回收机制

一:垃圾回收算法:

    标记清理算法: 在标记阶段,将通过可达性分析中能找到的对象进行标记出来.然后在清理阶段把数据没有标记的清理掉.以为所有可用对象,在内存中不一定是连续的,所以,导致对象间可能有空间,也就导致了空间碎片.

    复制算法:是把内存分成两份,在保存对象的时候只是用其中一块,当需要将对象进行回收的时候,将存活的对象复制到另一块中,然后清空当前内存,很明显在程序运行的时候始终有一个空闲内存没有被使用,

    标记/整理算法,是结合标记清除,和复制算法,标记阶段和标记清除算法是一致的,在整理阶段是将存活的对象向一端移动

二:老年代和新生代适合的垃圾回收算法:

    对于新生代来说,对象有一个特点,就是存活率非常低,所以在一次GC后,存活的对象,比较少,所以可以使用复制算法,将存活的对象复制到surviver空间中.每一次Gc,存活的对象的年龄,就会加1,知道到达一定阈值后,对象进入老年代,年轻代来及回收有 Serial ,ParNew,Parallel Scavenge

    对于老年代老说,对象存活率较高,如果使用复制算法,是比较浪费空间的,随意比较适合标记整理或者标记清除算法.老年代使用的算法有 ParOld ,CMS 等

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值