1. 标记清除算法
定义: Mark Sweep
速度较快
会造成内存碎片
分析:
2. 标记整理算法
定义:Mark Compact
速度慢
没有内存碎片
分析:
3. 复制算法
定义:Copy
不会有内存碎片
需要占用双倍内存空间
4. 总结
- 在
新
生代-复制
算法
每次垃圾收集都能发现大批对象已死, 只有少量存活. 因此选用复制算法, 只需要付出少量
存活对象的复制成本就可以完成收集 - 在
老
年代-标记整理
算法
因为对象存活率高、没有额外空间对它进行分配担保, 就必须采用“标记—清理”或“标
记—整理”算法来进行回收, 不必进行内存复制, 且直接腾出空闲内存.
在JVM的实际开发中,不会说只用一种算法,而是采取多种算法结合一起来共同实现垃圾回收