原理
通过一系列名为“GC Roots”的对象作为起点,从这些节点开始向下搜索,搜索所走过的路径被称为引用链(Refreance Chain),当一个对象没有任何引用链相连,则证明此对象不可用。如下图所示,object6、object7、object8虽然相互关联但是他们到GC Roots是不可达的,所以将他们判定为可回收的对象
在java语言中可作为GC Roots的对象包括以下四种:
1、虚拟栈中(栈帧中的本地变量表)引用的对象
2、方法区中的类静态属性引用的对象
3、方法区中常量引用的对象
4、本地方法栈中JNI(即一般说的Native方法)的引用对象
--------------------------------------------分割线---------------------------------------------------------
以上知识均来源于该书籍,有钱的小伙伴可以去购买正版书籍支持一下。
提取码:123456
《深入理解Java虚拟机JVM高级特性与最佳实践(周志明)》
https://306t.com/file/28095605-451122608