我是java的新手可以请一些人告诉我。是吗
Shallow copy
:复制原始类型和引用
Deep copy
:递归复制对象
clone()
答案 0 :(得分:5)
您可以查看clone()
的文档:
类
clone
的方法Object
执行特定的克隆操作。首先,如果此对象的类未实现接口Cloneable
,则抛出CloneNotSupportedException
。请注意,所有数组都被视为实现接口Cloneable
,并且数组类型T[]
的克隆方法的返回类型是T[]
,其中T
是任何引用或原语类型。否则,此方法创建此对象的类的新实例,并使用该对象的相应字段的内容初始化其所有字段,就像通过赋值一样;这些字段的内容本身不会被克隆。 因此,此方法执行此对象的“浅拷贝”,而不是“深拷贝”操作。
答案 1 :(得分:0)
http://en.wikipedia.org/wiki/Object_copy - 默认情况下它是一个浅层副本,但绝对可以覆盖它来执行深层复制。
答案 2 :(得分:0)
Object.clone()的默认实现执行浅拷贝。 当一个类需要深层拷贝或其他一些自定义行为时,他们 必须在获取后才能在自己的clone()方法中执行 从超类复制。
答案 3 :(得分:0)
如果您想快速轻松地进行深层复制,请使用Apache的Lang软件包及其SerializationUtils.clone()