过期对象引用没有清理掉,会导致内存泄漏。对于没有用到的对象引用,可以置空,这是一种做法。而最好的做法是,把保存对象引用的变量清理掉,多用局部变量。
import java.util.Arrays; import java.util.EmptyStackException; public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[ DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity(); elements[size++] = e; } public Object pop() { if (size == 0) throw new EmptyStackException(); return elements[-- size]; } /** * Ensure space for at least one more element, roughly doubling the capacity each time the array * needs to grow. */ private void ensureCapacity() { if (elements.length == size) elements = Arrays.copyOf(elements , 2 * size + 1); } }
public Object pop() { if ( size == 0) throw new EmptyStackException(); return elements[-- size]; }
public Object pop() { if (size == 0) throw new EmptyStackException(); Object result = elements [--size ]; elements[size] = null; return result ; }
原文:http://www.cnblogs.com/ttylinux/p/4358364.html