A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 rende1991 于 2014-7-26 15:07 编辑

看了理论那么久,可还是不能很清楚的理解深度复制和浅度复制,求大神指教。

点评

问题得到答案后请把帖子设为提问结束,这样版主才能加分  发表于 2014-7-26 10:40

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

10 个回复

倒序浏览
本帖最后由 许庭洲 于 2014-7-24 09:30 编辑

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

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报
类中包含引用对象时,就要考虑复制该类时,是采用深度复制还是浅度复制了.。
浅度复制的结果是,新对像是包含的引用对象 和 原对象中包含的引用对象是同一个东东, 改变其中任何一个中所引用的那个对象, 另一个也会受到影响;
深度复制的结果,与之相反, 新对象与原对象是完全独立的, 改变其中任何一个所包含的引用对像, 另一个都不会受到影响;
关键是要理解对象中包含引用对象的概念.

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报
学习一下
回复 使用道具 举报
许庭洲 发表于 2014-7-24 09:28
1.深度复制(Deep Copy ):不紧复制对象的基本类,同时也复制原对象中的对象,完全产生新对象。
2.浅度复制( ...

太感谢了
回复 使用道具 举报
大牛啊学习了!
回复 使用道具 举报
学习一下
回复 使用道具 举报
浅拷贝:只复制对象的基本类型,对象类型,仍属于原来的引用。
深拷贝:不紧复制对象的基本类,同时也复制原对象中的对象.完全产生新对象。

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报
浅度复制就是对于值类型成员,会复制其本身(值类型变量本身包含了所有数据,复制时进行按位拷贝);对于引用类型成员(注意它会引用另一个对象),仅仅复制引用,而不创建其引用的对象。
深度复制就是将引用成员指向的对象也进行复制。实际的过程是创建新的引用成员指向的对象,然后复制对象包含的数据。深度复制可能会变得非常复杂,因为引用成员指向的对象可能包含另一个引用类型成员{:2_33:}
回复 使用道具 举报
好的  谢谢老师  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马