对克隆对象的任何更改是否会反映 Java 中的原始对象?

Bal*_*ani 1 java

克隆对象上的任何更改都会反映原始对象吗?请任何人解释 clone() 方法在内部是如何工作的。

Dyr*_*dor 6

所以克隆是关于创建原始对象的副本。它的字典意思是:“制作一个相同的副本”。

默认情况下,java 克隆是“逐字段复制”,即因为 Object 类不知道将调用 clone() 方法的类的结构。因此,JVM 在调用克隆时,请执行以下操作:

1) 如果类只有原始数据类型成员,则将创建对象的一个​​全新副本,并返回对新对象副本的引用。

2) 如果类包含任何类类型的成员,则仅复制对这些成员的对象引用,因此原始对象和克隆对象中的成员引用都引用同一个对象。

如果您想要一个独立于原始的克隆,并且在克隆中进行更改不应影响原始。然后你可以使用深度克隆

这是完整的指南:http : //howtodoinjava.com/2012/11/08/a-guide-to-object-cloning-in-java/