- 判定对象已死
- 引用计数法
- 可达性分析算法:通过一系列“GC ROOTs”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径引用链(Reference Chain)
当一个对象到GC Roots没有任何引用链相连时,证明对象不可用。
- 引用:
- 强引用(Strong Reference):
- 软引用(Soft Reference):
- 弱引用(Weak Reference):
- 虚引用(Phantom Reference):
- 垃圾收集算法:
- 标记清除算法(Mark-Sweep):先表标记所有需要回收的对象,然后统一回收。缺点:效率低,内存碎片。
- 复制算法(Copying):将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。将一块使用完的
内存上还存活的对象复制到另外一块内存上面,将用完的内存块一次清理回收。优缺点:
效率高,但内存利用率较低。 - 标记-整理算法(Mark-Compact):先标记需要回收的对象,然后让存活的对象向一段移动,然后清理掉边界
以外的内存。 - 分代收集算法(Generational Collection):根据对象不同的存活周期将内存划分为几块,采用不同的垃圾收集
算法。新生代:复制 老年代:标记清除、标记整理
转载于:https://www.cnblogs.com/jdktomcat/p/10241451.html