본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Java] Serializable & Externalizable

by 돼지왕왕돼지 2013. 9. 9.


 자바, Serializable & Externalizable

 

[Java] Serializable & Externalizable


Serializable 은 implement 를 해주면 자동으로 object 안에 있는 모든 변수들이 serializable 하게 된다. 물론 primitive type 에 대해서이다. Serializable 을 구현한 클래스에서 다른 object 를 담고 있다면 해당 object 도 serializable 해야 정상적으로 serializable 하게 된다. 만약 변수 중에 serializable 하게 만들고 싶지 않은 것들이 있다면 transient 이라는 키워드를 앞에 붙여주어야 한다.


Externalizable 인터페이스는 Serializable 인터페이스의 자식 클래스이다.

Serializable 은 object 의 모든 변수들을 자동으로 serializable 하게 만들지만

Externalizable 은 readExternal( ObjectInput in ) 과 writeExternal( ObjectOutput out ) 을 구현해주며

이 안에서 read, write 하는 변수들만 serializable 하게 된다.


readExternal 에서는 기본적으로 기본 생성자를 이용하기 떄문에 기본 생성자를 생성해주어야 한다.





이것들이 제대로 구현되어 있어야 ObjectInputStream 과 ObjectOutputStream 을 통해 직렬화, 역직렬화를 제대로 수행할 수가 있다.



댓글0