是否应该取消引用数组堆栈中的值?

gra*_*ton 1 java arrays stack

假设我有一些使用数组存储值的堆栈实现.弹出时,可以简单地更改我的"指针"值所指的位置,还是应该将当前数组位置设置为null?

public T pop() {
    size--;
    return stack[size];
}
Run Code Online (Sandbox Code Playgroud)

public T pop() {
    size--;
    T result = stack[size];
    stack[size] = null;
    return result;
}
Run Code Online (Sandbox Code Playgroud)

Cyr*_* Ka 5

如果未设置为null,则堆栈仍将保留对先前堆栈中对象的引用.它可能导致内存泄漏,因为只要有东西持有对象的引用,垃圾收集器就不会释放内存.

所以,设置stack[size]null.