关于垃圾回收中的 Roots 对象
資深大佬 : bear2000 6
最近读了《深入理解 Java 虚拟机》这本书,书中说明了在垃圾回收时,固定可以当做 Roots 的对象,包含以下几种:
- 虚拟机栈(栈帧中的本地变量)中引用的对象。
- 方法区中类静态属性引用的对象,比如 Java 类的引用类型静态变量。
- 方法区中常量引用的对象,比如字符串常量里的引用。
- 被同步锁( synchronized )持有的对象。
- ……
书中没有说明为什么这些对象可以当做 Roots,作为可达性算法的起始节点。由于面试时被问到且没有答上来,所以很想知道。请教 V 友,求解答。
大佬有話說 (8)