싱글턴과 직렬화 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } public void leaveTheBuild丄ng() { ... } } Serializable 을 추가하는 순간 더 이상 싱글턴이 아니게 된다 어떤 readObject()를 사용하든 이 클래스가 초기화될 때 만들어진 인스턴스와는 별개인 인스턴스를 반환한다. readResolve()를 사용하면 readObject()가 만들어낸 인스턴스를 다른 것으로 대체할 수 있다. 역직렬화된 새 인스턴스는 참조를 잃어 자동적으로 GC 대상이 된다. private Object readResolve() { return INSTANCE; }..
기본 직렬화 형태가 적합한 경우 객체의 물리적 표현과 논리적 내용이 같다면 기본 직렬화 형태라도 무방하다 기본 직렬화 형태가 적합하다고 결정했더라도 불변식 보장과 보안을 위해 readObject 메서드를 제공해야 할 때가 많다 직렬화 형태에 적합한 클래스 public class Name implements Serializable { /** * 성. null이 아니어야함 * @serial */ private final String lastName; /** * 이름. null이 아니어야 함. * @serial */ private final String firstName; /** * 중간이름. 중간이름이 없다면 null. * @serial */ private final String middleName; } 기..
- Today
- Yesterday
- template method
- 메인보드#asrock b650m #조립pc #후기이벤트
- 영속성
- reactive
- Serialize
- jvm
- Redis
- Java
- concurrency
- iterable
- 부하테스트
- jdk11
- JMeter
- observable
- object
- gslb
- Observer Pattern
- Design Pattern
- reactive stream
- Serializable
- exception
- in-memory
- strategy
- Concurrecy
- Spring
- 디자인패턴
- template
- Effective JAVA
- LAMBDA
- nosql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |