zzh

zzh

Javaの深いコピーと浅いコピー

仮定して、私たちがクラスを持っているとしましょう。

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

  • 浅いコピー

未命名フォーム

  • 深いコピー
    未命名フォーム (2)
注意事項:#

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

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