GC算法分类
- 引用计数
- 标记清除
- 标记整理
- 分代回收
引用计数算法实现原理
给每个对象在创建的时候分配一个引用技术器,计数对象被引用的次数,当引用次数为0是,可以立即进行回收。
优缺点:
1,当对象引用为0时,可以立即进行回收,减少页面卡顿
2,循环引用的对象不能进行回收
3,要为每个对象创建计数器,在对象引用数改变的时候,需要对计数器进行修改,空间时间消耗大
复制代码
标记清除算法实现原理
从根节点开始遍历所有可达对象,并标记为活动对象,然会再进行第二遍遍历对象,对于没有标记的对象进行清除,同时清除之前做的标记
优缺点:
1,无用对象不能立即进行回收处理
2,可以对循环引用的对象进行回收
3,回收地址不连续
复制代码
可以看到收集到的蓝色区域的内存是不连续的。
标记整理实现算法
是标记清除算法的增强版,在回收之前,将回收对象和不回收对象地址整理,保证回收的地址是连续的
优缺点:
1,无法立即回收对象
2,回收地址连续
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END