Open1
shallow copy, deep copy についてまとめてみる

概要
シャローコピー(Shallow Copy)とディープコピー(Deep Copy)の違いについて記述をする
シャローコピー(Shallow Copy)とディープコピー(Deep Copy)の違い
どちらもデータをコピーしているが、コピー元がどこかという点が異なる
英語的には、Shallow:浅い、Deep:深いということ。これではまだわからない。。
シャローコピー(Shallow Copy)
オブジェクトを複製する際に、コピー元のオブジェクトとコピー先のオブジェクトがメモリ上の同じデータを参照している状態。
コピー元のデータに変更を加えると、コピー先のオブジェクトが参照しているデータが同じなので、コピー先のオブジェクトから見たインスタンス変数も変更される。
シャローコピーは、参照のコピーのみ。
ディープコピー(Deep Copy)
オブジェクトのみのコピーでなく、オブジェクトとメモリ上のデータの両方をコピーする。
二つのオブジェクトが参照しているデータは別々なので、一方のオブジェクトのインスタンス変数に変更を加えても、もう一方のオブジェクトには影響がない。
参考サイト