gpt4 book ai didi

Java : garbage collection

转载 作者:行者123 更新时间:2023-12-01 17:04:58 25 4
gpt4 key购买 nike

在一次采访中我被问到了一个有关垃圾收集的问题。

下面是一段代码。

List<String> a=new ArrayList<String>();
a.add("one");
a.add("two");
a.add("three");
a.add("four");

HashSet<String> h=new HashSet<String>();
h.add("four");
h.add("five");
h.add("six");

h.addAll(a);
a=null;

问题是:有多少对象符合垃圾回收的条件>

请解释一下。

最佳答案

本地范围内可见对象的一般答案:只有ArrayListHashSet 可通过范围内局部变量 h 访问,并且字符串可通过 HashSet 访问。只有无法访问的对象才有资格进行垃圾回收。

注释:

  1. 字符串文字具体可以在字符串池中分配,如评论中所述。在这种情况下,这些对象将不符合垃圾回收的条件。

  2. 只能通过特殊类型的引用(例如弱引用)才能访问的对象可能仍然符合条件。

  3. 对整个事情持保留态度,因为这是一个理论面试问题,其主题在实践中很复杂。例如,您不知道在幕后分配了哪些其他对象。或者,如果可以证明没有其他用途,那么即使对象(从语言的角度)可访问,也可能存在积极的 GC 来收集对象。

关于Java : garbage collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26114023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com