[Effective Java] 지연 초기화는 신중히 사용하라

들어가며

지연초기화는 양날의 검이다. 클래스 혹은 인스턴스의 생성시 초기화 비용은 줄지만 그 대신 지연초기화하는 필드에 접근하는 비용은 커진다. 이는 지연초기화하려는 필드 중 결국 초기화가 이뤄지는 비율에 따라, 실체 초기화에 드는 비용에 따라 초기화된 각 필드를 얼마나 빈번히 호출하느냐에 따라 지연 초기화가 실제로는 성능을 느려지게 할 수 있다.

그럼에도 지연초기화가 필요한 경우가 있다. 해당 클래스의 인스턴스 중 그 필드를 사용하는 인스턴스의 비율이 낮은 반면 그 필드를 초기화하는 비용이 크다면 지연 초기화가 제 역할을 하는 것이다.

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/08/25/Languages/Effective%20JAVA/item83/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.