java中对象可达性分析 + 自动回收算法

对象可达性分析 + 自动回收算法”是Java GC(垃圾回收)核心的两个环节,下面详细解释:


1. 对象可达性分析(Reachability Analysis)

目的:
判定哪些对象“活着”,哪些对象已经变成“垃圾”可以回收。

原理:
JVM 会用一组叫“GC Roots(垃圾收集根节点)”的基础对象为起点,从这些根出发,沿着对象之间的引用关系去递归搜索。如果某个对象能通过这条引用链与GC Root相连,那么它就是“可达对象”(即还活着,暂不回收);反之则是“不可达对象”,等待被GC。

常见的GC Roots有:

  • 虚拟机栈中的对象引用(如局部变量引用的对象)
  • 方法区中的静态对象引用
  • 方法区中常量引用
  • JNI(本地方法接口)引用

简化理解:
像一棵树,从根节点走,看哪些对象能被触及到,

你可能感兴趣的:(运维专栏,算法,java,jvm)