학습 log (이론)/pattern
'객체 직렬화 및 RMI' 'Prototype 패턴' #1
abbear25
2016. 12. 13. 21:07
객체는 클래스에 정의된 인스턴스 변수의 집합
인스턴스에는 클래스 변수나 메서드가 포함되지 않는다
객체를 저장한다 = 객체의 모든 인스턴스 변수의 값을 저장한다
Serializable(직렬화)
자바 객체를 디스크에 저장하거나 네트워크로 전송하기 위해 연속적인 바이트 배열로 변환하는 것
ObjectInputStream 사용 (쓰기 작업)
*객제 직렬화에서 제외되는 것
transient, static
Deserialization(역직렬화)
직렬화되어 전송된 바이트 배열을 다시 자바 객체로 변환하는 것
ObjectOutputStream 사용(읽기 작업)
*직렬화한 순서 그대로 출력
변수의 순서가 하나라도 맞지않으면 역직렬화에 실패함으로
ArrayList와 같은 자료구조로 한번에 넣는 것이 더 효율적일 수 있음
SerialVersionUID, 클래스 버전관리
직렬화하면 내부에서 자동으로 생성되는 고유번호
직렬화, 역직렬화 과정에서 서로를 확인하기 위한 용도
*자바에서는 직접 선언하고 관리하는 방식을 권장함
private static final long serialVersionUID = 임의의 값;
반응형