默认的java.lang.Object.clone()方法执行什么类型的复制

时间:2013-08-07 16:13:31

标签: java

我是java的新手可以请一些人告诉我。是吗

Shallow copy:复制原始类型和引用

Deep copy:递归复制对象

clone()

没有默认实施方式

4 个答案:

答案 0 :(得分:5)

您可以查看clone()的文档:

  

clone的方法Object执行特定的克隆操作。首先,如果此对象的类未实现接口Cloneable,则抛出CloneNotSupportedException。请注意,所有数组都被视为实现接口Cloneable,并且数组类型T[]的克隆方法的返回类型是T[],其中T是任何引用或原语类型。否则,此方法创建此对象的类的新实例,并使用该对象的相应字段的内容初始化其所有字段,就像通过赋值一样;这些字段的内容本身不会被克隆。 因此,此方法执行此对象的“浅拷贝”,而不是“深拷贝”操作。

答案 1 :(得分:0)

http://en.wikipedia.org/wiki/Object_copy - 默认情况下它是一个浅层副本,但绝对可以覆盖它来执行深层复制。

答案 2 :(得分:0)

根据Wikipedia

  

Object.clone()的默认实现执行浅拷贝。   当一个类需要深层拷贝或其他一些自定义行为时,他们   必须在获取后才能在自己的clone()方法中执行   从超类复制。

答案 3 :(得分:0)

如果您想快速轻松地进行深层复制,请使用Apache的Lang软件包及其SerializationUtils.clone()