深入理解 Java 垃圾回收机制
Posted 二云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解 Java 垃圾回收机制相关的知识,希望对你有一定的参考价值。
垃圾回收机制中的算法:
1.引用计数法:无法检测出循环引用。如父对象有一个对子对象的引用,子对象反过来引用父对象。这样,他们的引用计数永远不可能为0.
2 标记-清除算法:采用从根集合进行扫描,对存活的对象对象标记,标记完毕后,再扫描整个空间中未被标记的对象,进行回收,会造成内存碎片
3 标记-整理算法:采用标记-清除算法一样的方式进行对象的标记,但在清除时不同,在回收不存活的对象占用的空间后,会将所有的存活对象往左端空闲空间移动,并更新对应的指针,进行了对象的移动,因此成本更高
4 copying算法 :克服句柄的开销和解决堆碎片的垃圾回收,它将堆分成对象面和空闲区域面,在对象面与空闲区域面的切换过程中,程序暂停执行
5 generation(分代)算法:不同生命周期的对象可以采取不同的回收算法,以便提高回收效率
a:年轻代 : 年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象 :采用 复制
b :年老代:在年轻代中经历了N次垃圾回收后仍然存活的对象,就会被放到年老代中 :年老代适合使用标记-清除算法(或者标记-清除-整理)
以上是关于深入理解 Java 垃圾回收机制的主要内容,如果未能解决你的问题,请参考以下文章