码迷,mamicode.com
首页 > 编程语言 > 详细

深入理解 Java 垃圾回收机制

时间:2017-08-14 20:14:11      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:nbsp   生命周期   copy   空闲   经历   对象   程序   回收   引用计数   

垃圾回收机制中的算法:

1.引用计数法:无法检测出循环引用。如父对象有一个对子对象的引用,子对象反过来引用父对象。这样,他们的引用计数永远不可能为0.

 2 标记-清除算法:采用从根集合进行扫描,对存活的对象对象标记,标记完毕后,再扫描整个空间中未被标记的对象,进行回收,会造成内存碎片

3 标记-整理算法:采用标记-清除算法一样的方式进行对象的标记,但在清除时不同,在回收不存活的对象占用的空间后,会将所有的存活对象往左端空闲空间移动,并更新对应的指针,进行了对象的移动,因此成本更高

4 copying算法 :克服句柄的开销和解决堆碎片的垃圾回收,它将堆分成对象面和空闲区域面,在对象面与空闲区域面的切换过程中,程序暂停执行

5 generation(分代)算法:不同生命周期的对象可以采取不同的回收算法,以便提高回收效率

   a:年轻代 : 年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象 :采用 复制

   b :年老代:在年轻代中经历了N次垃圾回收后仍然存活的对象,就会被放到年老代中 :年老代适合使用标记-清除算法(或者标记-清除-整理)

深入理解 Java 垃圾回收机制

标签:nbsp   生命周期   copy   空闲   经历   对象   程序   回收   引用计数   

原文地址:http://www.cnblogs.com/eryun/p/7359556.html

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