인스턴스 홀더에 관해서 질문이 있습니다.
안녕하세요 선생님! 저도 이게 궁금했었는데 이 글을 보고 이해가 되는 듯 하면서도 추가적인 궁금증이 생겨 이렇게 댓글을 남깁니다. 선생님 말씀은 Settings 클래스의 field를 eager initialization 하는 방식은 Settings.getInstance() 이외의 다른 메서드가 호출이 되었을 때 instance가 미리 초기화되니까 크기가 클 경우 로딩시간, 메모리 낭비가 될 수 있다는 말씀이신거죠? SettingsHolder를 static inner class로 사용했을 때에는 무조건 Settings.getInstance() 첫 번째 호출에 의해서만 객체가 초기화되니까 자원 낭비가 없다는 말씀이시구요. 제가 이해한 게 맞나요 ...? 제가 이해한 게 맞다는 가정 하에 질문을 드리자면, 근데 어짜피 Settings 클래스가 Singleton이라 무조건 처음 이 클래스를 사용하려면 Settings.getInstance() 메소드를 호출해야 해서 다른 메소드를 먼저 호출하는 경우가 없을 것 같은데, 꼭 그런 건 아닌가요 ..? 무조건 처음 호출되는 메소드가 Settings.getInstance() 라면 static inner class를 사용하는 것과 Settings class의 field에 그냥 초기화 하는 방법이랑 클래스 로딩 시점은 완전 같을 것 같아서요... 답변 주시면 감사하겠습니다^^