7. 垃圾回收算法
7.1 标记清除法
7.1.1 概述
当JVM发现内存中的垃圾后,就立即清除。
7.1.2 优点
速度快,效率高。
7.1.3 缺点
会产生内存碎片,造成内存空间的浪费。
7.2 标记复制法
7.2.1 概述
首先把内存划分为两个区域,新创建的对象放在其中一块内存区域中,当快满的时候,就把标记出来的存活的对象复制到另一块内存区域中(复制的时候在内存空间上是严格排序且连续的),依次循环往复。
7.2.2 优点
内存空间是连续的,不会产生内存碎片。
7.2.3 缺点
(1) 浪费了一半内存空间
(2) 复制对象会造成时间和性能上的损耗。
7.3 标记整理法
7.3.1 概述
标记整理法第一阶段会遍历GC Roots,标记出存活的对象。第二阶段会移动所有存活的对象,且按内存地址次序依次排列,然后将末端内存地址以后的内存全部回收。
7.3.2 优点
(1) 不会产生内存碎片。
(2) 节约内存空间。
7.3.3 缺点
太耗时间
7.4 总结
7.4.1 性能
标记清除法>标记复制法>标记整理法
7.4.2 结果
标记整理法>标记复制法>=标记清除法