- 572 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 17:48:16 ]
- >>571
Stringはイミュータブルなので、本質的にはコピーコンストラクタ呼び出しを必要とする理由がありません。 変数bはaと同じ内部状態を持つ別のオブジェクトとして作成されますが、 bオブジェクトの内部状態を変更することはできません(イミュータブルなため)。 オブジェクトaとオブジェクトbは、そのオブジェクトのライフサイクルの全ての期間において、 全く同じ値を持つ別のインスタンスとして存在し続けることになってしまいます。 以下のコードが理解の助けになるでしょう。 String a = "string"; String b = new String(a); String c = a; System.out.println(a == b); System.out.println(a == c); 結果 false; true;
|

|