【发布时间】:2013-08-09 05:09:34
【问题描述】:
我有这段代码用于 Stack 的 pop 方法,我正在尝试弄清楚它如何避免徘徊,同时仍然返回我们的索引当前指向的元素:
public String pop()
{ // Remove item from top of stack.
String item = a[--N];
a[N] = null; // Avoid loitering (see text).
if (N > 0 && N == a.length/4) resize(a.length/2);
return item;
}
据我所知,我们将 String 对象的引用项指向数组 a 的索引元素(我们从最后一个元素开始,使用它的当前大小 N-1 因此递减)。那么,如果我们要返回引用,为什么要在这样做之前将引用指向的索引元素设置为 null 呢?这不会使项目指向任何内容并且不返回任何内容吗?
【问题讨论】:
-
Java 中的引用总是复制,因此通过修改数组中的内容,您不会改变从中得到的内容。
标签: java memory garbage-collection stack