什么是Shallow Copy和Deep Copy?

Shallow Copy(浅拷贝):创建一个新的与原类相同的类,在拷贝过程中,类中的基本类型得到正真的复制,而类中的对象只是实现引用的拷贝。当我们在新的类中修改了其中的某个对象,这个对象在原始的类中也会得到反映。原因是我们修改的对象所指向的内存地址是相同的。

从图中可以看到,复制后的mainObj2中基本类型field2单独获得了一块内存区,而对象级别的ObjStr并没有正真的复制,内存指针指向的还是同一块区域。比如我们熟悉的HashMap,HashSet,ArrayList,LinkedList的clone都属于浅拷贝行为。

Deep Copy(深拷贝):深度拷贝不但实现了基本类型的复制,同时也实现了对象的复制,简单说就是从新用new操作符从新创建了一个一模一样的类。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容