# シリアル化は、オブジェクトのストリームを処理するために使用されるメカニズムです。 (推奨学習: Javaコース)
いわゆるオブジェクトストリーム:オブジェクトのコンテンツをストリーミングすることです。ストリーミング オブジェクトは読み取りおよび書き込みが可能で、ネットワーク間で送信することもできます。
シリアル化は、オブジェクト ストリームの読み取りおよび書き込み時に発生する問題を解決することです。
シリアル化の実装:
シリアル化する必要があるクラスは、Serializable インターフェイス (マーカー インターフェイス) を実装します。このインターフェイスには、シリアル化する必要があるメソッドはありません。 Serializable を実装すると、オブジェクトがシリアル化できることをマークし、出力ストリーム (FileOutputStream など) を使用して ObjectOutputStream (オブジェクト ストリーム) オブジェクトを構築します。
その後、 writeObject(Object obj ) ObjectOutputStream オブジェクトのこのメソッドは、パラメータが obj であるオブジェクトを書き出す (つまり、その状態を保存する) ことができ、それを復元したい場合は、入力ストリームを使用します。
シリアル化をいつ使用するか?
1: オブジェクトの直列化により、分散オブジェクトを実現できます。
次のような主なアプリケーション: RMI (リモート メソッド呼び出し) は、ローカル マシンでオブジェクトを実行するときと同じように、オブジェクトのシリアル化を使用してリモート ホストでサービスを実行します。
2: Java オブジェクトのシリアル化は、オブジェクトのデータを保持するだけでなく、オブジェクトによって参照される各オブジェクトのデータを再帰的に保存します。
オブジェクト階層全体をバイト ストリームに書き込むことができ、ファイルに保存したり、ネットワーク接続を介して渡すことができます。オブジェクトのシリアル化を使用すると、オブジェクトの「ディープ コピー」、つまりオブジェクト自体と参照されるオブジェクト自体をコピーできます。オブジェクトをシリアル化すると、オブジェクト シーケンス全体が作成される場合があります。
3: シリアル化では、メモリ内のクラスをファイルまたはデータベースに書き込むことができます。
例: クラスをシリアル化してファイルとして保存すると、次回それを読み取るときに、ファイル内のデータを逆シリアル化して元のクラスをメモリに復元するだけで済みます。
クラスは、送信用のストリーム データにシリアル化することもできます。一般に、インスタンス化されたクラスをストレージ用のファイルに変換することです。次にインスタンス化する必要があるときは、それを逆シリアル化してクラスをメモリにインスタンス化し、シリアル化中にクラス内のすべての変数と状態を保持するだけです。
4: オブジェクト、ファイル、データにはさまざまな形式があるため、それらを均一に送信したり保存したりすることは困難です。
シリアライズ後はバイトストリームになりますので、元が何であっても同じものにして共通の形式で送信したり保存したりすることができます。使用するときは、オブジェクトがオブジェクトのままでファイルもファイルのままになるように、デシリアライズして復元します。
JAVA ではオブジェクトをシリアル化する必要があるため、送信のためにストリームに入れます。
以上がJava でシリアル化する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。