首页 > 其他 > 详细

03_垃圾回收

时间:2018-02-12 22:45:45      阅读:232      评论:0      收藏:0      [点我收藏+]

【简述】

垃圾回收GC(Garbage Collection),GC中的垃圾,特指存于内存中不会再使用的对象,回收相当于清除垃圾。

垃圾回收有很多种算法,如:引用计数法、标记压缩法、复制算法、分代分区思想。

[ 引用计数法 ]

是比较古老经典的垃圾收集算法,其核心就是对象在被其引用时计数器+1,而当引用失效时-1,这种方式有一个非常严重的问题:无法处理循环引用的情况,且每次进行操作比较浪费系统性能。

[ 标记清除法 ]

分为标记和清除两个阶段来处理内存中的对象。这种方式也有一个弊端:空间碎片问题,垃圾回收后的空间不是连续的,不连续的内存空间的工作效率要低于连续的内存空间。

[ 复制算法 ]

其核心思想就是将内存空间分为两块,每次只使用其中一块,在垃圾回收时,将正在使用的内存中的存留对象复制到未被使用的内存块中,之后去清除之前正在使用的内存块中的所有对象,反复去交换这两个内存的角色,完成垃圾收集。

Java中新生代的from和to区就是使用这个算法。

[ 标记压缩法 ]

标记压缩法对标记清除法基础上做了优化,把存活的对象压缩到内存一段,然后进行垃圾清除。

Java中老年代使用的就是标记压缩法。

 

03_垃圾回收

原文:https://www.cnblogs.com/HigginCui/p/8445717.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!