JAVA垃圾回收机制(GC算法)
首先了解一下有哪些垃圾回收算法:
1、引用计数法
老牌垃圾回收算法
对象中存在引用计数器,如果被引用则+1,若失去引用则-1,当=0的时候就回收。
算法问题:加减增加了计算成本,互相引用的问题难以解决
2、标记-清除算法
比如内存是一个表格,那么把第一个节点当成树的根节点,从根节点到所有可达的对象均会被标记,其他的则被清理。
3、标记-压缩算法
基于上面,将被标记的内存对象整理到表格的第一行,那么能提高不少程序工作效率!
4、复制算法
将内存分成两片,当一片满了或者触发回收时,将有引用的对象复制到另一片,该片清除所有对象,转换角色。
5、JVM垃圾回收算法
分代思想,新生代(复制算法,每逃过一次复制则将年龄+1,比如到达15岁时加入老年代),老年代(标记清除)