对于java中的对象克隆,我有点困惑。浅克隆和深克隆的主要区别是什么?
哪一个更好?
发布于 2013-10-04 08:01:30
在浅层克隆中,克隆类不复制其内部对象,但在深度克隆中,类的所有内部对象也被复制。深度克隆的一个缺点似乎是序列化,这类克隆对象的序列化并不是那么容易。
然而,不能说哪一个更好。
发布于 2013-10-04 08:09:42
浅拷贝:通常是对象的克隆方法,创建同一个类的新实例,并将所有字段复制到新实例并返回它。这不过是浅薄的抄袭。
深度克隆
在大多数情况下,这是人们想要的行为。我们想要一个独立于原作的克隆,在克隆中的改变不应该影响原作。
您也可以考虑复制构造函数。
至于你的问题,哪一个会更好,这取决于你总是在寻找什么样的行为。
克隆简介:http://howtodoinjava.com/2012/11/08/a-guide-to-object-cloning-in-java/
发布于 2014-12-07 07:13:37
假设b类是从类中克隆出来的。如果使用类所做的任何更改都影响到b类,那么在类中所做的任何更改都不影响b类,则称为深度克隆。因为在阴影克隆中,b类指向a class..it共享相同的内存位置。在深度克隆中,将创建单独的副本。这意味着a类和b类将具有独立的内存位置。
https://stackoverflow.com/questions/19176177
复制相似问题