オブジェクトフローのJavaの基礎(シリアライズとデシリアライズ)

シリアライゼーションおよびデシリアライゼーション:
シリアル化:オブジェクトまたはディスクファイルに何らかの方法で格納されたJavaヒープメモリのオブジェクトデータは、他のネットワークノード(ネットワーク上の伝送)に送信されることをいう。
我々はこれを呼び出しますプロセスがシリアライズと呼ばれている。
非直列化:ディスクファイル内のオブジェクトデータやネットワーク・ノード上のオブジェクト・データ、Javaプロセスにオブジェクトを復元します。

なぜの配列行う
1):分散システムでは、JavaBeanは、オブジェクトデータをバイナリ形式に変換する必要があり、その後、オブジェクトに再伝送ネットワークに必要、シリアル化を行う必要があり、共有データに必要オブジェクト。
オブジェクトがHttpSessionに格納された後、直列化インターフェイスを実装する必要があります(唯一の直列化を行うためには、直列化インタフェースクラスを実装する)。
2):サービスパッシベーション:あなたには、いくつかのサービス活動は、長い時間のための目標ではないことが判明した場合、この時点で、サーバーがメモリ内にこれらのオブジェクトを配置します、永続的なローカル・ディスク・ファイル(Javaオブジェクト- >バイナリファイル)。
いくつかの活動は、メモリを探すために今必要と使用上の発見した場合、オブジェクトが、見つからない場合私たちはJavaオブジェクトにオブジェクトのデータ復旧をデシリアライズする必要があり、ディスクのファイルにアクセスしてください。

行うためにシリアル化オブジェクト・クラスは、シリアルインタフェースを実装する必要があります。java.io.Serializableのインタフェース(インタフェースフラグ[いいえ抽象メソッド])を
基礎現在のオブジェクトのみブールのシーケンスを実行することができ、直列化インスタンスであるかどうかを決定します。 RET = JavaのはSerializableのinstanceofオブジェクト。

JavaでのほとんどのクラスはSerializableインターフェースを実現しています。

:シリアライズとデシリアライズ操作を完了するために、オブジェクトのストリームを使用して第二に、
オブジェクトストリームを使用すると、シリアライズとデシリアライズ行われます:
にObjectOutputStreamを:. writeObjectメソッドによって、一連の操作を行うには
ObjectInputStreamの:のreadObjectメソッドによってデシリアライズを行います。
ここに画像を挿入説明

此时报错:User类没有实现序列化接口,java.io.Serializable.

オブジェクトバイトコードの逆シリアル化操作は、オブジェクトの存在している必要があります。
ここに画像を挿入説明
三つのシリアライゼーションの詳細シリアライズバージョン:
1):?いくつかのデータはどのように行うには、この時点で、パスワードなど、シリアライズを行う必要はありません場合は
理論的には、静的フィールドおよび過渡フィールドは、一連の操作を行うことができないです。

2):質問のシリアル化されたバージョン:
(/フィールドを追加するフィールドを削除)、質問は今、プロジェクトのエスカレーションと、クラスファイルシステムがアップグレードされるオブジェクトのデシリアライズするJavaオブジェクトのクラスファイルを提供する必要があり、どのようにJava(登録シーケンスのバージョン番号)によって2つのクラスファイル?のserialVersionUIDの保証互換性にバイトコードを変更するかどうかを決定する。
表示された値はserialVersionUIDのクラス変数が定義されていない場合、クラス情報に従ってJVMクラスによって計算変数、および前修飾クラスの計算としばしば異なっている。
これによりため互換性のないバージョンの失敗した問題のオブジェクト逆シリアル化を引き起こします。

ソリューション:クラスで固定のserialVersionUIDを提供する。
ここに画像を挿入説明
四つの直列化およびインタフェースおよびクラスのデシリアライズ。
Javaの開発者の便宜のために含め、サポートに便利なAPI Javaオブジェクトのシリアライズとデシリアライズを提供次のインタフェースとクラス:
①java.io.Serializable
②java.io.Externalizable
③ObjectOutput
④ObjectInput
⑤ObjectOutputStream
⑥ObjectInputStream

公開された99元の記事 ウォンの賞賛2 ビュー2594

おすすめ

転載: blog.csdn.net/weixin_41588751/article/details/105341536