【发布时间】:2016-09-08 06:52:06
【问题描述】:
以下代码创建一个数组和一个字符串对象。代码执行后存在多少对这些对象的引用?任一对象都符合垃圾回收条件吗?
...
String[] students = new String[10];
String studentName = "Peter Parker";
students[0] = studentName;
studentName = null;
...
我的回答是 studentName 有资格进行垃圾收集。但给出的答案都是不符合条件的。我认为学生 [0] 指的是字符串“Peter Parker”,而 studentName 也是如此。现在 studentName 指的是为空,学生[0]仍然指的是“彼得帕克”(我通过打印出来检查了这一点)。给出的解释是学生[0]仍然指的是学生名,所以学生名也没有资格进行垃圾收集。但我'我不明白这一点,因为 studentName 现在指的是 null 而学生 [0] 指的是“Peter Parker”。我的理解错了吗?
【问题讨论】:
-
你能提供一个链接到那个说它指的是
studentName而不是字符串"Peter Parker"的地方吗? -
没有字符串引用符合垃圾回收条件
-
我认为您应该将这篇文章的标题更改为有助于未来访问者、搜索引擎帮助找到这篇文章的内容。
-
所以这里是解释的链接link 最后一句说对象 studentName 也不符合条件,所以这很令人困惑,因为 studentName 是一个引用变量,它现在引用 null。