TIL

아이템 7. 다 쓴 객체를 참조 해제하라

메모리 누수가 발생하는 스택 코드 예제

public class Stack {
    private Object[] elements;
    private int size = 0;
    private static final int DEFAILT_INITIAL_CAPACITY = 16;

    public Stack() {
        elements = new Object[DEFAILT_INITIAL_CAPACITY];
    }

    public void push(Object e) {
        encureCapacity(); // 배열 크기를 늘려야할 때 늘려주는 메서드
        elements[size++] = e;
    }

    public Object pop() {
        if (size == 0) {
            throw new EmptyStackException();
        }
        return elements[--size]; // 참조가 여전히 남아있음
    }
}

참조 해제하기 (null 처리)

null 처리를 해야하는 경우