싱글턴과 직렬화 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
- nosql
- jdk11
- Spring
- iterable
- Redis
- 부하테스트
- Design Pattern
- jvm
- reactive stream
- template
- Concurrecy
- gslb
- in-memory
- concurrency
- Serialize
- 영속성
- JMeter
- Java
- Effective JAVA
- 디자인패턴
- strategy
- Observer Pattern
- object
- observable
- template method
- reactive
- LAMBDA
- exception
- Serializable
- 메인보드#asrock b650m #조립pc #후기이벤트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |