ホームページ >Java >&#&チュートリアル >シリアル化とは何ですか?シリアル化の詳細な紹介
メモリ内のオブジェクトをハードディスクに書き込むことはシリアル化であり、出力データが通常のテキストではなくオブジェクトであることを除いて、通常の出力と何ら変わりません。
メモリ内のデータの保存は一時的なものであるため、オブジェクトを長期間保存する必要がある場合は、オブジェクトをハードディスクに書き込む必要があり、その結果シリアル化が行われます。 。
オブジェクトをシリアル化するには、そのオブジェクトが属するクラスが Serializable インターフェイスを実装する必要があります。このインターフェイスは、フィールドと 抽象メソッドを持たない象徴的なインターフェイスであり、JVM と遭遇します。このインターフェイスは、シリアル化されたバージョン番号をクラスに割り当てます。
4. オブジェクトがシリアル化され、プライベート型変数を含むオブジェクト内のグローバル変数がハードディスクに書き込まれます。
静的フィールドの値は、シリアル化中に設定された値ではなく、現在の JVM の値です。
トランジェントによって変更されたフィールドはシリアル化できません。
OutputStream ops=new FileOuptStream(path); ObjectOuptStream oos=new ObjectOutputStream(ops); Object obj=new Ojbect(); oos.writeObject(obj);
2. 逆シリアル化操作の要件
3. シリアル化バージョン番号
⑵シリアル化されたバージョン番号は、エンティティ クラスのバージョンをマークするために使用されます。エンティティ クラスが変更されると、シリアル化されたバージョン番号が明示的に指定されない場合、システムは自動的に新しいバージョン番号を生成するため、2 つのバージョン番号が使用されます。が異なるため、シリアル化できません。
通常、シリアル化のバージョン番号は、シリアル化する必要があるエンティティ クラスに明示的に設定されます。⑶ 再コンパイルしないと、必ずしも新しいシリアル化されたバージョン番号が生成されるわけではありません。エンティティ クラスが変更された場合にのみ、新しいシリアル化されたバージョン番号が生成されます。
⑷解析処理デシリアライズする際は、まずシリアル化ファイルとクラスファイルのシリアル化バージョン番号が同じかどうかを比較し、同じであれば、そのシリアル化ファイルは現在の
⑸逆シーケンス操作:
InputStream is=new FileInputStream(path); ObjectInputStream ois=new ObjectIputStream(is); Object obj=ois.readObject();
以上がシリアル化とは何ですか?シリアル化の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。