星海

JVM · 单选题 · 第 25 题

Java 后端开发面试 · 第 25 题

可达性分析算法中,下列哪一项可以作为 GC Roots?

  1. A堆中只被其他不可达对象引用的对象
  2. B上一次垃圾回收时已经被回收的对象
  3. C新生代中任意一个刚刚创建的对象
  4. D虚拟机栈中局部变量引用的对象

答案

D D. 虚拟机栈中局部变量引用的对象

解析

GC Roots 包括:栈帧中局部变量引用的对象、类静态变量引用的对象、常量引用的对象、JNI 引用的对象、被同步锁持有的对象等。从 GC Roots 出发走不到的对象就是可回收的,即使它们之间相互引用。这也是 Java 不用引用计数的原因,引用计数解决不了循环引用。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。