나는 SO
에이 기사를 읽고 :직렬화를 통해 사용자 정의가 가능하고 왜 Externalizable을 사용할 수 있습니까?
Externalizable or Serializable?,
What is the difference between Serializable and Externalizable in Java?.
하지만 내 질문은 serializable
과 비교하여 Externalizable
을 구현하여 추가 맞춤 설정을 유도 할 수 있다는 것입니다.
이 writeObject
및 readObject
우리 자신의 구현을 제공함으로써 Serializable
를 구현하는 class
의 Serialization
을 사용자 정의 할 수 있습니다. 그렇다면 Externalizable
을 사용하고 ReadExternal
및 writeExternal
구현을 사용자 정의하는 목적은 무엇입니까? Externalizable
을 사용하면 어떤 이점이 있습니까? Externalizable
은 serialization
(위의 내용 포함)을 지원하는 다양한 링크를 읽었습니다. 그러나 나는 Externalizable
이 확실한 승자이거나 Serializable
을 사용하여 수행 할 수없는 예를 보지 못했습니다. 이것에 대한 예를 보는 것이 좋을 것입니다. class
가이 classes
의 instances
직렬화 할 수있는 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
의 표준 동작을 사용자 지정할 수 있습니다.