Java常用垃圾收集算法的简单理解:
1 引用计数算法(Reference Counting)
对象每被引用一次增加一次计数,删除一次引用减少一次计数。垃圾回收的时候如果引用为0,则执行回收。
2 标记清除算法(Mark-Sweep) 内存碎片较多
分两个阶段,标记阶段从根节点标记哪些对象还在被引用,清除阶段清除没被标记的对象。
3 复制算法(Copying)不会出现内存碎片
内存分成两个区域,总是有个区域在用,另一个区域为空。每次执行回收时都把还在使用的复制到另一个区域,然后清空当前区域。
4 标记整理算法(Mark-Compact)
此算法结合了“标记-清除”和“复制”两个算法的优点。
5 分代算法(Generational Collecting)
就是当前jvm新生代老年代划分的收集算法。
参考资料: