黑马程序员技术交流社区

标题: 关于复制分为深度复制和浅度复制,如何更好的去理解和... [打印本页]

作者: rende1991    时间: 2014-7-24 09:04
标题: 关于复制分为深度复制和浅度复制,如何更好的去理解和...
本帖最后由 rende1991 于 2014-7-26 15:07 编辑

看了理论那么久,可还是不能很清楚的理解深度复制和浅度复制,求大神指教。
作者: 许庭洲    时间: 2014-7-24 09:28
本帖最后由 许庭洲 于 2014-7-24 09:30 编辑

1.深度复制(Deep Copy ):不紧复制对象的基本类,同时也复制原对象中的对象,完全产生新对象。
2.浅度复制(Shallow Copy):只复制对象的基本类型,对象类型仍属于原来的引用。

作者: 天佑の清清    时间: 2014-7-24 11:54
类中包含引用对象时,就要考虑复制该类时,是采用深度复制还是浅度复制了.。
浅度复制的结果是,新对像是包含的引用对象 和 原对象中包含的引用对象是同一个东东, 改变其中任何一个中所引用的那个对象, 另一个也会受到影响;
深度复制的结果,与之相反, 新对象与原对象是完全独立的, 改变其中任何一个所包含的引用对像, 另一个都不会受到影响;
关键是要理解对象中包含引用对象的概念.

作者: 乔相坤    时间: 2014-7-24 14:23
学习一下
作者: rende1991    时间: 2014-7-25 14:02
许庭洲 发表于 2014-7-24 09:28
1.深度复制(Deep Copy ):不紧复制对象的基本类,同时也复制原对象中的对象,完全产生新对象。
2.浅度复制( ...

太感谢了
作者: 麦田怪圈    时间: 2014-7-25 16:25
大牛啊学习了!
作者: mouxingyu    时间: 2014-7-25 19:12
学习一下
作者: Kevion小远    时间: 2014-7-25 21:17
浅拷贝:只复制对象的基本类型,对象类型,仍属于原来的引用。
深拷贝:不紧复制对象的基本类,同时也复制原对象中的对象.完全产生新对象。
作者: Kevion小远    时间: 2014-7-25 21:20
浅度复制就是对于值类型成员,会复制其本身(值类型变量本身包含了所有数据,复制时进行按位拷贝);对于引用类型成员(注意它会引用另一个对象),仅仅复制引用,而不创建其引用的对象。
深度复制就是将引用成员指向的对象也进行复制。实际的过程是创建新的引用成员指向的对象,然后复制对象包含的数据。深度复制可能会变得非常复杂,因为引用成员指向的对象可能包含另一个引用类型成员{:2_33:}
作者: rende1991    时间: 2014-7-26 15:08
好的  谢谢老师  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2