Javaのシリアライゼーションおよびデシリアライゼーション(B)シリアライズソースコード解析--1

Javaのシリアライゼーションおよびデシリアライゼーション(B)シリアライズソースコード解析--1

直列化の一般的な使用についての前回の記事で説明し、このセクションでは、周り、Javaシリアルの実現に焦点を当てたObjectOutputStreamのwriteObject#の拡張メソッド。

1. Javaシリアルインタフェース

JavaオブジェクトのシリアライズとデシリアライズにJava開発を容易にするためにサポートするための便利なAPIを提供します。これは、次のクラスおよびインタフェースが含まれています。

Javaシリアルインタフェース

  • Serializable 和 Externalizableシリアルインターフェイス。Serializableインタフェースのフィールドやメソッドは、何のカスタムシリアル化メソッドが呼び出されていない場合、実際には、反射法のwriteObjectにObjectOutputStream#のwriteObjectによって呼び出されたときに、デフォルトの可能セマンティクスの配列を同定するために使用されていません。writeExternalメソッドとのreadExternal:Externalizableインタフェースは2つの拡張の抽象メソッドのインタフェースを定義します。

  • DataOutput 和 ObjectOutputDataOutput内には、Javaのプリミティブ型のバイト、短い、int型、長い、フロート、ダブル、文字、ブール8つの基本タイプと同様に、文字列の操作を提供します。ObjectOutputは、writeObject最終DataOutput内の基本的な操作方法またはコールの種類にDataOutput内のオブジェクトに基づいて操作の種類を提供します。

  • ObjectOutputStream私たちは、一般的に永続オブジェクトへのObjectOutputStream#writeObjectメソッドを使用します。永続ストアからのObjectInputStream#readObjectメソッドは、それを読むためにオブジェクトに。

  • ObjectStreamClass 和 ObjectStreamFieldObjectStreamClassシリアル化されたクラス記述子は、クラス記述は、記述情報とserialVersionUIDの情報フィールドが含まれています。あなたは、このJava VMの特定のクラスロードを作成するObjectStreamClass /見つけるために、lookupメソッドを使用することができます。そして、フィールド名、フィールド値などを含むのObjectStreamField記述子フィールドの格納されたシーケンス。

http://www.importnew.com/17964.html
https://blog.csdn.net/shenchaohao12321/article/details/79504515

https://blog.csdn.net/silentbalanceyh/article/details/8250096


毎日少しを記録する意向。おそらく、内容は重要ではありませんが、習慣は非常に重要です!

おすすめ

転載: www.cnblogs.com/binarylei/p/10987933.html