JVM垃圾回收 笔记
垃圾回收算法
新生代中因为对象都是“朝生夕死的”,深入理解JVM虚拟机上说98%的对象存活率很低,适用于复制算法,复制算法比较适合用于存活率低的内存区域。它优化了标记/清除算法的效率和内存碎片问题。
老年代中存活率较高,要是使用复制算法,每次都要复制大量的对象,会浪费大量的时间,因此复制算法不适合回收老年代使用也就是存活率高的场景下。
标记-整理算法不仅可以弥补标记-清除算法中,导致内存空间不连续的缺点,也消除了,复制算法中,内存减半的高额代价。不过任何算法都会有其缺点,只是适用的场景不同,标记-整理算法唯一的缺点就是效率也不高,不仅要标记所有存活对象,还要整理所有存活对象的引用地址。从效率上来说,标记-整理算法要低于复制算法。