シリアル化、逆シリアル化とは?
Java内部システムで使用されるオブジェクトまたはデータを、外部で使用するためにByteに変換します.
オブジェクトのいずれかのオブジェクトメンバーにシリアル・インタフェースが隠されていない場合は、この操作は実行できません. @Trasientオブジェクトで宣言されたメンバーは送信されません.(シリアルを除く) Javaシリアル化 オブジェクトをシリアル化し、Byte配列に変換します. 逆シリアル化を行うには、シリアルオブジェクトのクラスがClassPathに存在し、インポートする必要があります. シリアルVersionUIDを管理する理由
Javaシリアル化ターゲットオブジェクト 図に示すように、同一オブジェクトであるか否かを識別することが必要である. 最初の作成時間:22/04/16
シリアル化
Java.io.Serializable
インタフェースが隠されているオブジェクトのみをシリアル化シリアル化e.g
Java.io.Serializable
インタフェースは継承されます.serialVersionUID
.@Entity
@AllArgsConstructor
@toString
public class HubContent implements Serializable {
private static final long serialVersionUID = 1L;
private String title;
private String subtitle;
...
java.io.ObjectOutPutStream
オブジェクトの使用HubContent hubcontent = new HubContent("제목", "부제");
byte[] serializedHubContent;
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
try (ObjectOutputStream oos = new ObjectOutputStream(baos)) {
oos.writeObject(hubContent);
// 직렬화된 HubContent 객체
serializedHubContent = baos.toByteArray();
}
逆シリアル化e.g
try (ByteArrayInputStream bais = new ByteArrayInputStream(serializedHubContent)) {
try (ObjectInputStream ois = new ObjectInputStream(bais)) {
// 역직렬화된 HubContent 객체를 읽어온다.
Object objectHubContent = ois.readObject();
HubContent hubContent = (HubContent) objectHubContent;
}
シリアルVersionUIDを管理する理由
serialVersionUID
が必要です.Reference
この問題について(シリアル化、逆シリアル化とは?), 我々は、より多くの情報をここで見つけました https://velog.io/@kimjaejung96/직렬화-역직렬화란テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol