GC Roots

本文于452天之前发表,文中内容可能已经过时。

JVM判断对象是否可以回收采用的不是引用计数法,而是可达性分析算法,而通过什么能够判断对象是否可达呢,就是一系列称为GC Roots的对象。

可达性算法介绍

算法基本思路就是通过一系列称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。就是可以回收的。

GC Roots所包含的对象

java中,可作为GC Roots的对象包括下面几种

  • 虚拟机栈(栈帧中的本地变量表)中引用的对象。
  • 方法区中类静态属性引用的对象
  • 方法区中常量引用的对象
  • 本地方法中JNI(即一般说的Native方法)引用的对象。

想了解更多技术文章信息,请继续关注wiliam.s Blog,谢谢,欢迎来访!


参考资料
《深入理解Java虚拟机:JVM高级特性与最佳实践》·周志明著·第二版

欣赏此文?求鼓励,求支持!
上一篇