Javaのシリアル化を達成するためにどのように、Javaのシリアライズは何ですか?ロールまたはSerializableインタフェースを説明してください。

これは、最初の直列化の目的をクリアする必要があります。

    1.かかわらず、バイナリ形式のデータの種類の別のプロセスへのJavaオブジェクトによって送信を処理するために、ネットワーク上で送信されるバイトのシーケンスに変換する必要があり、ネットワーク上で送信され、Javaオブジェクトバイトの変換シーケンスのためのプロセスシリアル化されたオブジェクトと呼ばれ、Javaオブジェクトへのバイトの回復シーケンスは、オブジェクトデシリアライズと呼ばれ、(java.io.ObjectOutputStreamのその後のwriteObject(オブジェクトobj)メソッドもよいですオブジェクト直列化バイトストリームと、得られたストリームを指定されたパラメータが目標出力までに書き込まれます)

 

2.オブジェクトは、直列化され、後者は、動作のシーケンスを制御するために許し完全自体によって、このクラスの前のサブクラス実装ではなく、単に前者のクラスのデフォルトの順序を使用することができる実装さシリアライズとExternalizableインタフェースクラスを達成することができます道の。これらのインタフェースを実装するオブジェクトをシリアル化することができますマークしました。
概要
Javaのシリアル化技術を使用して、バイトストリームにオブジェクトの状態を書き込むために、そして他の場所で同じオブジェクトの再構成を行うバイトデータでストリームから読み込むことができることができます。

Javaのシリアル化技術を使用して、バイトストリームにオブジェクトの状態を書き込むために、そして他の場所で同じオブジェクトの再構成を行うバイトデータでストリームから読み込むことができることができます。このメカニズムは、システムなど、あなたは、ネットワークを介して拡散をターゲットにすることができ、そしてかもしれデータベース、ファイルにいつでもオブジェクトの永続性で。Javaのシリアル化メカニズムは、技術的基礎RMI、EJBなどの技術です。用途:シリアライズされたオブジェクトの使用は、アプリケーションの保存の現在の動作状態を達成するために、次回は自動的に最後に実行状態に復元再起動します。

それはそれが流動化する、いわゆるコンテンツオブジェクトストリームオブジェクトであり、オブジェクトのプロセス・ストリームのシリアル化メカニズムの一種です。流動オブジェクトが読み取りおよび書き込み操作をすることができた後、オブジェクトはまた、ネットワーク間で流動化した後に送信することができます。直列化は、オブジェクトのストリームが読み込みと開始書き込み操作をするときに問題を解決することです。

シリアル化実装は:シリアル化されたクラスは、直列化インタフェースは、出力ストリームを実装する必要があります(例:たFileOutputStream)ObjectOutputStreamのオブジェクトのwriteObject(オブジェクトOBJ)を使用し、次いで、ObjectOutputStreamの(オブジェクトストリーム)オブジェクトを構築する方法を使用することができますオブジェクトobjのパラメータは、入力ストリームの場合に復元する(即ち、その状態を保存するために)書き込みます。

2、シリアル化の機能:

    クラスのシリアル化できるかどうか(1)、サブクラスは、シリアル化されてもよいです。クラスは親クラスを持っている場合は、2つのケースが考慮すべき、親クラスが達成されている場合は、シリアルインタフェースかもしれません。そして、同じクラスとその親クラスの属性に対応するフィールドを処理して、クラスの親クラスは、直列化インタフェースは、クラスのフィールドプロパティのすべての親クラスとすることができるが実装されていない場合がシリアライズされることはありません。

  (2)タイプの過渡及び静的データメンバをシリアル化することができないと宣言。クラスの静的状態を表すために、オブジェクトの一過性、一時的なデータを表します。

  (3)関連するクラスおよびインタフェース:シリアルjava.ioパッケージのクラスとオブジェクトのインターフェースに提供はするObjectOutputインタフェース、ObjectOutputStreamのクラス、のObjectInputインタフェース、ObjectInputStreamのクラスに向けられています。

    (1)のObjectOutputインタフェース:それはインタフェースを継承し、オブジェクトを格納するDataOutput内シリアル化されたオブジェクトのwriteObjectそこ()メソッドをサポートします。ObjectInputインタフェース:それはインタフェースDataInputインタフェースを継承し、シリアル化されたオブジェクトをサポートし、そこのreadObject()メソッドは、オブジェクトを読み出します。

    (2)ObjectOutputStreamのクラス:インタフェースを継承したObjectOutputを実装するのOutputStreamクラス。オブジェクトストアを達成するためにクラスを使用して(のwriteObject()メソッドたObjectOutputインタフェースを呼び出します)。ObjectInputStreamのクラス:継承したObjectInputインタフェースを実装するInputStreamクラス。目的を達成するためにクラスを使用して(インタフェースObjectInputのreadObject()メソッドと呼ばれる)が読み出されます。

  親クラスが直列化インターフェイスを実装していない場合は、親の治療のために、それはデフォルトコンストラクタ(すなわち、パラメータなしのコンストラクタ)を持っている必要があります。そうでなければ、それは時間のエラーをコンパイルします。直列化復元では、デフォルトのコンストラクタが呼び出されたとき。親クラスが一度にシリアライズ、デシリアライゼーションのためにマークすることができます場合は、デフォルトのコンストラクタが呼び出されません。これはなぜでしょうか?これは、直接オブジェクトは、オブジェクト・インスタンスを生成するのではなく、そのコンストラクタを介して完了するれたデータストリームから、デシリアライゼーション時にJavaオブジェクトのシリアライゼーションからです。

おすすめ

転載: www.cnblogs.com/ldddd/p/11414023.html