10 lines
956 B
Markdown
10 lines
956 B
Markdown
Java,C#,Lisp使用该算法
|
||
>通过一系列称为**GC Roots**的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为**引用链**(Reference Chain),如果某个对象到GC Roots间没有任何链引用时,图论上从GC Roots到该对象不可达时,证明该对象不可能再被使用
|
||
|
||
可作为GC Roots的对象
|
||
1. 方法区中类静态属性引用的对象,如Java类的引用类型静态变量
|
||
2. 方法区中常量引用的对象,如字符串常量池(String table)引用的对象
|
||
3. 本地方法栈中JNI(Native方法)引用的对象
|
||
4. Java虚拟机内部的引用,如基本数据类型对应的Class对象,一些常驻的异常对象(NullPointException,OutOfMemoryError),系统类加载器
|
||
5. 所有被同步锁(Synchorinzed)持有的对象
|
||
6. 反映虚拟机内部情况的JMXBean,JAMTI中注册的回调,本地代码缓存等 |