《深入理解Java虚拟机》读书笔记 垃圾回收算法

  • 标记-清除算法
    过程,首先标记所有需要进行回收的对象,标记完成后统一清除
    缺陷:
    • 效率低下:标记及清除效率不高
    • 产生大量不连续的内存碎片,难以进行再次分配。
      《深入理解Java虚拟机》读书笔记 垃圾回收算法
  • 复制算法
    过程:将内存分为对等的两部分,每次只使用其中一部分,垃圾回收时,将仍存活的对象复制到另一块区域,同时将原使用内存区域清空。
    • 优点:简单方便运行高效
    • 缺点:只能使用一半内存
      《深入理解Java虚拟机》读书笔记 垃圾回收算法
  • 标记-整理算法
    过程:标记过程和标记清除算法相同,整理过程则将存活的对­象向一端移动,然后清除存活对象占用以外的其他内存空间。
    《深入理解Java虚拟机》读书笔记 垃圾回收算法
  • 分代收集算法收集( Generational Collection)
    依据対象生存周期的不同将内存分为几块,一般把在Java堆分成新生代和老生代,新生代由于对象“朝生夕死”,因此可以使用复制算法,可以尽快完成内存回收;老年代由于对象存活率高,因此使用标记-清理或标记-整理算法进行回收。
    Hot Sopt 虚拟机采用的即为分代收集算法(待续。。。)