首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是浅层的还是深度的克隆?

什么是浅层的还是深度的克隆?
EN

Stack Overflow用户
提问于 2013-10-04 07:59:58
回答 6查看 5.2K关注 0票数 3

对于java中的对象克隆,我有点困惑。浅克隆和深克隆的主要区别是什么?

哪一个更好?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-10-04 08:01:30

在浅层克隆中,克隆类不复制其内部对象,但在深度克隆中,类的所有内部对象也被复制。深度克隆的一个缺点似乎是序列化,这类克隆对象的序列化并不是那么容易。

然而,不能说哪一个更好。

票数 3
EN

Stack Overflow用户

发布于 2013-10-04 08:09:42

浅拷贝:通常是对象的克隆方法,创建同一个类的新实例,并将所有字段复制到新实例并返回它。这不过是浅薄的抄袭。

深度克隆

在大多数情况下,这是人们想要的行为。我们想要一个独立于原作的克隆,在克隆中的改变不应该影响原作。

您也可以考虑复制构造函数。

至于你的问题,哪一个会更好,这取决于你总是在寻找什么样的行为。

克隆简介:http://howtodoinjava.com/2012/11/08/a-guide-to-object-cloning-in-java/

票数 1
EN

Stack Overflow用户

发布于 2014-12-07 07:13:37

假设b类是从类中克隆出来的。如果使用类所做的任何更改都影响到b类,那么在类中所做的任何更改都不影响b类,则称为深度克隆。因为在阴影克隆中,b类指向a class..it共享相同的内存位置。在深度克隆中,将创建单独的副本。这意味着a类和b类将具有独立的内存位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19176177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档