码迷,mamicode.com
首页 > 其他好文 > 详细

03_垃圾回收

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

标签:引用   系统性能   操作   garbage   分代   标记   cti   比较   java   

【简述】

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

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

[ 引用计数法 ]

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

[ 标记清除法 ]

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

[ 复制算法 ]

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

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

[ 标记压缩法 ]

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

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

 

03_垃圾回收

标签:引用   系统性能   操作   garbage   分代   标记   cti   比较   java   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!