我一直在浏览Java网站上的Java教程,并且对他们对问题的回答感到困惑。
问题如下:“下面的代码创建一个数组和一个字符串对象。在代码执行后存在对这些对象的引用有多少个?其中一个对象是否可以进行垃圾回收?”
String[] students = new String[10];
String studentName = "Peter Smith";
students[0] = studentName;
studentName = null;
答案:“有一个对students数组的引用,而该数组有一个对字符串Peter Smith的引用。这两个对象都没有资格进行垃圾回收。”
为什么
studentName
不符合垃圾收集条件?什么都没有指向studentName
,它的值是null
。 最佳答案
studentName是一个变量,不是对象-您只能垃圾回收对象。
如前所述,这里唯一的对象是创建的String[]
和“ Peter Smith”,两者都是可以访问的,因此不符合使用GC的资格。
关于java - 带有变量分配的Java垃圾回收,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25493793/