当初在学习《设计模式》的时候,遇到过这个问题,当时还不是很理解,现在回想一下,做个小小的总结。
1.什么是浅复制
分析下上述图片,刚开始有一个Tom的引用类型的变量指向了堆中的一个动物园的对象,动物园有自己的属性比如面积、大小,当然也会有动物,因此,动物园中又指向了鸭子的对象,如果此时采取浅复制的话,最终的效果如上图所示,对于其中的引用型对象,我们采取浅复制的时候,只是单纯的复制了其地址,并没有在堆上创建出一个新的对象。
2.什么是深复制
知道了浅复制,深复制就好理解了,还是看上图,如果采取深复制的话,就是将引用成员指向的对象也复制一份。实际的过程就是创建新的引用指向新的对象,然后复制对象中包含的数据。
时间: 2024-10-08 02:40:16