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