当一个类自己管理自己的内存时,要注意内存溢出的现象 可以造成内存泄露的一个例子: import java.util.EmptyStackException; public class MemroyleaksStack { private Object[] elements; private int size = 0; public MemroyleaksStack(int initialCapacity) { this.elements = new Object[initialCapacity]; } public Object pop() { if (size == 0) throw new EmptyStackException(); return elements[--size]; } public void push(Object e) { ensureCapacity(); elements[size++] = e; } private void ensureCapacity() { if (elements.length == size) { Object oldElements = elements; elements = new Object[2 * elements.length + 1]; System.arraycopy(oldElements, 0, elements, 0, size); } } } 修改后的代码: import java.util.EmptyStackException; public class MemroyleaksStack { private Object[] elements; private int size = 0; public MemroyleaksStack(int initialCapacity) { this.elements = new Object[initialCapacity]; } public Object pop() { if (size == 0) throw new EmptyStackException(); Object result = elements[--size]; elements[size] = null; return result; } public void push(Object e) { ensureCapacity(); elements[size++] = e; } private void ensureCapacity() { if (elements.length == size) { Object oldElements = elements; elements = new Object[2 * elements.length + 1]; System.arraycopy(oldElements, 0, elements, 0, size); } } }