싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스 싱글턴을 만드는 3가지 방법 1. public static final 방식 public class Singleton { public static final Singleton INSTANCE = new Singleton(); private Singleton() {} public void singletonMethod() {} } private 생성자는 public static final 필드의 Singleton.INSTANCE를 초기화 할 때 한 번만 호출 public이나 protected 생성작 없으므로 클래스가 초기화 될 때 만들어진 인스턴스가 전체 시스템에서 하나뿐임이 보장 예외적으로 권한이 있는 클라이언트는 AccessibleObject.set..
클래스는 생성자와 별도로 정적 팩터리 메서드를 제공할 수 있다. 생성자보다 정적 팩터리 메서드가 좋은점 1. 이름을 가질 수 있다. 2. 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다. 3. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. 4. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 5. 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다. 단점 1. 상속을 하려면 public이나 protected생성자가 필요하니 정적 팩터리 메서드만 제공하면 하위 클래스를 만들 수 없다. 2. 정척 팩터리 메서드는 프로그래머가 찾기 어렵다. 정적팩터리 메서드 명명방식 1. from : 매개변수를 하나 받아서 해당 타입의 인스턴스를 반환하는 ..
스트림 최종연산 collect collect() : 스트림의 최종연산, 매개변수로 컬렉터를 필요 Collector : 인터페이스, 컬렉터는 이 인터페이스를 구현 Collectors : 클래스, static메서드로 미리 작성된 컬렉터를 제공 스트림을 컬렉션과 배열로 변환 : toList(), toSet(), toMap(), toCollection(), to Array() 통계 : Counting(), summingInt(), averagingInt(), maxBy(), minBy() 리듀싱 : reducing() 문자열 결합 : joining(), joining(","), joining("," , "{" , "}"); 그룹화와 분할 : groupingBy(), partitioningBy() Collecto..