2014-02-27 1 views
2

나는 SO에이 기사를 읽고 :직렬화를 통해 사용자 정의가 가능하고 왜 Externalizable을 사용할 수 있습니까?

Externalizable or Serializable?,

What is the difference between Serializable and Externalizable in Java?.

하지만 내 질문은 serializable과 비교하여 Externalizable을 구현하여 추가 맞춤 설정을 유도 할 수 있다는 것입니다.

writeObjectreadObject 우리 자신의 구현을 제공함으로써 Serializable를 구현하는 classSerialization을 사용자 정의 할 수 있습니다. 그렇다면 Externalizable을 사용하고 ReadExternalwriteExternal 구현을 사용자 정의하는 목적은 무엇입니까? Externalizable을 사용하면 어떤 이점이 있습니까? Externalizableserialization (위의 내용 포함)을 지원하는 다양한 링크를 읽었습니다. 그러나 나는 Externalizable이 확실한 승자이거나 Serializable을 사용하여 수행 할 수없는 예를 보지 못했습니다. 이것에 대한 예를 보는 것이 좋을 것입니다. class가이 classesinstances 직렬화 할 수있는 JVM에 대한 정보를 제공 Serializable interface를 구현하면

:

그냥 here에서 추출 더 명확하게, 다음 코드를 제공합니다. 그와 함께, JVM

에 특별한주의가 "이있는 invoke 발견하는 경우. 직렬화 구현하는 클래스의 두 가지 방법을 다음과 같은 사항에 대해보고 또 직접 표준 직렬화 프로토콜에 따라 직렬화 프로세스를 계속"

Serializable과를 구현하는 Class 내부

private void writeObject(ObjectOutputStream out) throws IOException;, private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;

: 그래서 이것은 우리에게이 두 가지 방법을 쓸 수있는 기회를 제공합니다 serialization 프로세스에 연결됩니다. 이 두 가지 방법으로 사용자 지정 코드를 작성하고 serialization의 표준 동작을 사용자 지정할 수 있습니다.

답변

0

Serializable과 Externalizable의 주된 차이점은 Serializable이 자동으로 기본 클래스를 처리한다는 것입니다. Externalizable은 전체 작업을 당신에게 맡깁니다.

관련 문제