JVM-判断垃圾对象-GC Roots可达性分析

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

GC Roots可达性分析算法是主流商用程序语言所使用的,当然也包括java。

通过将一系列称为“GC Roots”的根对象作为起始节点,从这些节点开始,根据引用关系向下搜索,搜索过程所走的路径称为“引用链”。如果某个对象到GC Roots间没有任何引用链相连,则被判定为可回收的对象。

GC Roots对象主要有:

1.虚拟机栈中引用的对象
2.本地方法栈中引用的对象
3.静态属性引用的对象
4.常量引用的对象
5.类对象
6.常驻的异常对象
7.类加载器
8.所有被同步锁(synchronized)持有的对象
9.JMXBean、JVMTI、本地代码缓存
10.根据回收区域的不同,临时加入的一些对象

猜你喜欢

转载自blog.csdn.net/a13662080711/article/details/108163405