私は単純な Java クラス オブジェクトを持っています。ネットワークを介して友人にバイトコードを送信できます。オブジェクトをシリアル化せずに送信することによる問題は何ですか? オブジェクトを送信するためにシリアル化が必要な理由。直接送れないの?
5 に答える
Object's
状態は内部にありJVM
ます。他の人JVM
があなたの中にあるあなたのオブジェクトの状態について知るようになる方法JVM
、あなたはあなたのオブジェクトの青写真(クラス)をE-Mail
ftp
または他のファイル転送媒体を介してあなたの友人に転送することができますが、あなたがそれをobject
越えて転送する必要があるならあなたはJVM
持続する必要がありますオブジェクトの状態であるため、シリアル化が必要です。
シリアライゼーションとは、クライアントサーバー通信でオブジェクトの状態を管理することです。Serializable を作成していない場合、オブジェクトの状態は管理されません。シリアル化せずにサーバーからクライアントに 1 つのオブジェクトを渡そうとすると、u null オブジェクト値が提供されます。したがって、クライアントで受信したいオブジェクトが、送信したオブジェクトと同じではないことを示しています。シリアライゼーションだけでは、毎回新しいオブジェクトを作成するわけではないので、必要です。
シリアル化することにより、オブジェクトを、クラス定義とオブジェクトの小道具を含むバイト ストリームに変換します。一方、それをシリアライズする際の問題は何ですか?それはちょうどそれを行う方法です。
オブジェクトには、InputStreams や DatabaseConnections などのシリアル化できないオブジェクトを含めることができます。オブジェクト (またはその前身) がインターフェイス Serializable を実装している場合、シリアル化が実際に可能になるまでコードはコンパイルされません。
バイト コードは JVM で読み取り可能な形式を表し、シリアル化されたオブジェクトにはオブジェクトの動作と状態 (インスタンス変数) が含まれます。それらはまったく別のものです。
ネットワーク上でシリアル化されたオブジェクトを送信する理由。
オブジェクトの状態は変化し続けるため、いつでもその状態をキャプチャしてネットワークに保存/送信する必要があります。
オブジェクトの状態を自分のマシンではなく、他の誰かのマシンに保存したい場合があります。