2つの違いは何ですか:
hashMap_2 = hashMap_1;
と
hashMap_2 = new HashMap<Object_1,Object_2>(hashMap_1);
両者に違いはありますか?
私によると、両方とも新しいHashMap名前のhashMap_2
hashMap_2 = hashMap_1;は、両方の変数が同じオブジェクトを参照していることを意味します。hashMap_2は、 によって参照されているオブジェクトを参照するようになりますhashMap_1。hashMap_2 = new HashMap<Object_1,Object_2>(hashMap_1); により、別のハッシュマップがの値で作成されますhashMap_1。HashMapオブジェクトがあり、それらは同じ値を持ちます。最初の式は HashMap を初期化しません。参照を割り当てるだけです。
このステートメントhashMap_2 = hashMap_1;は参照割り当てと呼ばれ、同じオブジェクトが 2 つの参照変数によって参照されます。
を初期化するとき、プリミティブを除いて、演算子Objectが付属しています。new初期化プロセスはヒープ上に新しいオブジェクトを作成しますが、割り当ては新しいオブジェクトを作成しません。
1.hashMap_2 = hashMap_1;
hashMap_1 の値が hashMap_2 に割り当てられました
2.hashMap_2 = new HashMap<Object_1,Object_2>(hashMap_1);
新しい HashMap オブジェクト (hashMap_2) が作成されました
両方の拡張の違いは、割り当てと初期化です