假定クラスがあるとします
以下では、深いコピーと浅いコピーの違いを示すために 2 つの図を使用します。
- 浅いコピー
- 深いコピー
注意:#
クラスがあると仮定し、浅いコピーを行います
この時、出力結果は次のようになります
つまり、ここでは以前の図と同様に浅いコピーが行われていないことを示しています。なぜなら、オブジェクト x の値とオブジェクト y の値が異なるからです。これは、String や Integer などのラッパークラスが不変のオブジェクトであるためです。不変オブジェクトの値を変更する必要がある場合、新しい値を格納するために新しいオブジェクトをメモリに生成し、元の参照を新しいアドレスに向ける必要があります。