内存分配策略之可达性分析算法

java中判断一个对象是否需要回收使用的是可达性分析算法!

可达性分析算法:通过一些被称为GC Roots的对象做为起点,从这些对象向下所搜。搜索过程中走过的所有路径被称为引用链,对象没有引用链与GC Root对象相连,则被认为是不可用对象

如图(图片来自网络):

 可当做GC Roots的对象:

  1. 虚拟机栈(栈针中的背地变量表)中引用的对象
  2. 方法区中静态属性引用的对象
  3. 方法区中常量引用的对象
  4. 本地方去栈中JNI(也就是Native方法)引用的对象
原文地址:https://www.cnblogs.com/shiguotao-com/p/10537145.html