深复制 Or 浅复制

来源:互联网 发布:linux显示root密码 编辑:程序博客网 时间:2024/06/17 06:57

 

 当初在学习《设计模式》的时候,遇到过这个问题,当时还不是很理解,现在回想一下,做个小小的总结。

 1.什么是浅复制

 分析下上述图片,刚开始有一个Tom的引用类型的变量指向了堆中的一个动物园的对象,动物园有自己的属性比如面积、大小,当然也会有动物,因此,动物园中又指向了鸭子的对象,如果此时采取浅复制的话,最终的效果如上图所示,对于其中的引用型对象,我们采取浅复制的时候,只是单纯的复制了其地址,并没有在堆上创建出一个新的对象。


 2.什么是深复制

 知道了浅复制,深复制就好理解了,还是看上图,如果采取深复制的话,就是将引用成员指向的对象也复制一份。实际的过程就是创建新的引用指向新的对象,然后复制对象中包含的数据。

0 0