지연 초기화 (lazy initialization)는 필드의 초기화 시점을 그 값이 처음 필요할 때까지 늦추는 기법이다. 따라서 값이 전혀 쓰이지 않으면 초기화도 결코 일어나지 않는다. 이 기법은 정적 필드와 인스턴스 필드 모두에 사용할 수 있다. 주로 최적화 용도로 쓰이지만, 클래스와 인스턴스 초기화 때 발생하는 위험한 순환 문제를 해결하는 효과도 있다. 지연 초기화 특징 지연 초기화는 양날의 검이다. 다른 최적화처럼 필요할 때까지는 하지 않는 게 좋다. 클래스 혹은 인스턴스 생성 시의 초기화 비용은 줄지만 그 대신 지연 초기화하는 필드에 접근하는 비용은 커진다. 실제 성능이 느려지는 이유 지연초기화하려는 필드들 중 초기화가 이뤄지는 비율 실제 초기화에 드는 비용 초기화된 각 필드를 얼마나 빈번히 호출..