zzh

zzh

Javaのディープコピーとシャローコピー

假定クラスがあるとします

以下では、深いコピーと浅いコピーの違いを示すために 2 つの図を使用します。

  • 浅いコピー

未命名表单

  • 深いコピー
    未命名表单 (2)
注意:#

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

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。