[07] 다 쓴 객체 참조를 해제하라
핵심 내용
메모리 누수는 어떨 때 주로 일어날까
package item7;
import java.util.Arrays;
import java.util.EmptyStackException;
public class Stack {
private Object[] elements;
private int size = 0;
private final static int DEFAULT_CAPACITY = 15;
public Stack(int initialSize) {
this.elements = new Object[initialSize];
}
public void push(Object o) {
ensureCapacity();
elements[size++] = o;
}
public Object pop() {
if (size == 0) {
throw new EmptyStackException();
}
return elements[size--];
}
private void ensureCapacity() {
if (elements.length == size) {
elements = Arrays.copyOf(elements, 2 * size + 1);
}
}
}위 문제를 개선하려면 어떻게 해야할까?
메모리 누수의 주요 범인 셋(책에서 언급하고 있는)
위에서 코드로 묘사한 자기 메모리를 직접 관리하는 클래스
캐시 메모리
리스너 또는 콜백

Last updated