2

「Javaでオブジェクトを作成する方法はいくつありますか」について読んだとき。

私は4つの方法を見つけました:

  1. 新しい演算子を使用したオブジェクトの作成。
  2. クローニング
  3. シリアル化
  4. 反射。

新しくて熟考することで、私はこれらの2つの方法で大丈夫です。

私の質問は:

オブジェクトを作成するさまざまな方法として、クローン作成とシリアル化を考えるのはなぜですか?

4

2 に答える 2

7

ここで非常に重要な点は、オブジェクトの逆シリアル化では、プロセスにコンストラクターが関与しないことです。これが、オブジェクトを作成するための明確な方法である理由です。これはクローン作成にも当てはまります。このメソッドObject.cloneは、コンストラクターを使用せずに、JVMマジックによって新しいオブジェクトを作成します。new実際、リフレクションは特定のコンストラクターを含むプレーンバニラオブジェクトのインスタンス化を呼び出すためのわずかに異なる方法であるため、これら2つの方法とリフレクションの間にははるかに大きな違いがあります。

于 2012-05-10T19:17:14.103 に答える
1

オブジェクトのクローンを作成する場合、それは、元のオブジェクトとは異なるメモリ部分にあるものを処理していることを意味します。はい、それらは同じプロパティを持っているかもしれませんが、それらは2つの異なるメモリブロックを持つ2つの異なるポインタです。

オブジェクトのシリアル化を解除すると、以前は存在しなかったオブジェクトが存在します。シリアル化してすぐにアンシリアル化しても、元のオブジェクトから独立して存在します。

于 2012-05-10T19:14:35.387 に答える