면접2 Singleton(면접단골질문) Singleton 은 객체 생성을 제한시키는 목적외에도 지연 초기화(lazy initializaion) 목적도 있다. 기본 코드 public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; } } private 생성자로 외부에서 Singleton 객체를 생성하지 못하게 막고 getInstance 메서드를 통해서만 제공한다. getInstance 에서는 instance 가 null 일때만 생성하도록 해 객체 생성을 제한시킨다. 하지.. 2021. 5. 9. 오버로딩vs오버라이딩(면접단골질문) 뻔한 질문이지만 한걸음 더 들어가서 보면 배열과 제네릭까지 묶어서 같이 이야기를 풀어나갈 수 있다. 예제 코드 및 설명은 이펙티브 자바를 많이 참고했다. 먼저 아래의 코드를 살펴보자. 이 코드의 목적은 컬렉션을 종류별로(집합이냐, 리스트냐, 아니면 다른 종류의 컬렉션이냐) 분류하는 것이다. // 의도한 결과를 내지 않는 분류기 public class CollectionClassifier { public static String classify(Set s) { return "Set"; } public static String classify(List lst) { return "List"; } public static String classify(Collection lst) { return "Unknown .. 2021. 1. 22. 이전 1 다음