java - 有多少对象符合gc条件

标签 java garbage-collection scjp

<分区>

你能解释一下这个答案吗..?正如我所料答案C

 Given:
 11. class Snoochy {
 12. Boochy booch;
13. public Snoochy() { booch = new Boochy(this); }
14. }
15.
16. class Boochy {
17. Snoochy snooch;
18. public Boochy(Snoochy s) { snooch = s; }
19. }
And the statements:
21. public static void main(String[] args) {
22. Snoochy snoog = new Snoochy();
23. snoog = null;
24. // more code here
25. }

在第 23 行执行后,关于 snoog、snooch 和 booch 引用的对象,下列哪个说法是正确的?

   A. None of these objects are eligible for garbage collection.
   B. Only the object referenced by booch is eligible for garbage collection.
   C. Only the object referenced by snoog is eligible for garbage collection.
   D. Only the object referenced by snooch is eligible for garbage collection.
   E. The objects referenced by snooch and booch are eligible for garbage collection.

Answer: E

最佳答案

这两个类相互引用。因此,当 snoog 创建时,您还会得到一个 booch 和一个 snooch。当您设置 snoog = null; 时,boochsnooch 有资格获得 GC

关于java - 有多少对象符合gc条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16207908/

相关文章:

java - 如何正确处理 TextField 绑定(bind)并将节点引用与任务分开

java - 我应该为SCJP准备多长时间?

java - SCJP 问题 : Method ambiguous

c# - 垃圾收集器的替代品是什么?

garbage-collection - 如何更改 Kubernetes 垃圾回收阈值

具有多个键的 Java WeakHashMap?

java - 解决向上转型/向下转型问题

java - 将 com.itextpdf.text.Image 保存为图像文件

java - JIT - 微优化 - if 语句消除

java - 加密连接字符串,如何加密?