频道栏目
首页 > 资讯 > Java > 正文

java自带的垃圾回收机制介绍

18-06-29        来源:[db:作者]  
收藏   我要投稿

GC:java自带的垃圾回收机制

当我们频繁的创建对象时,系统会分配给我们所占用的内存,内存是有限的,如果不回收会造成内存泄漏。

查找垃圾的算法

1引用计数法:没创建一个对象就给他设置一个引用计算器,当引用的时候+1,引用失效的时候-1,当它为0的时候就是没地方引用它了,就可以被当做垃圾,有一个弊端,如果两个失效的对象互相引用的时候这种算法就没法处理它。

2可达性分析算法:从根节点开始搜索所有不可达的对象都是垃圾。

清除垃圾的算法

1标记清除算法:分为标记阶段和清除阶段,标记阶段就是标记所有存活的对象,清除阶段就是把没记的对象清除,弊端会中断应用中其他组件的执行,还回造成内存碎片。

2复制算法:把使用的内存分为两块,一块正在使用的,一块未使用的,把正在使用的内存中存活的对象复制到未使用的内存中,然后清除正在使用内存中的所有对象,最后再交换二者的角色。(用空间换时间)

3标记压缩算法:把存活的对象标记之后不是立马清除,而是把存活的对象压缩到内存的一端,然后把边界以外的所有对象清除。(用时间换空间)

4分带算法:把新建的对象放到年轻代的内存中,因为年轻代中回收对象非常快,因为年轻代回收垃圾快所以基本用复制算法,当其中的对象经过几次仍存活的话,就把它放到老年代中,老年待回收垃圾慢,基本用标记压缩算法。

相关TAG标签
上一篇:15个Java多线程面试题及答案分享
下一篇:C#七层登陆的代码实例教程
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站