【发布时间】:2013-09-17 06:58:13
【问题描述】:
我有这段代码,我正在其中制作一个数组的副本。
使用System.arraycopy 似乎比clone() 更冗长。但两者都给出相同的结果。一个比另一个有什么优势吗?
这是代码:
import java.util.*;
public class CopyArrayandArrayList {
public static void main(String[] args){
//Array copying
char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e'};
char[] copyTo = new char[7];
System.arraycopy(copyFrom, 0, copyTo, 0, 7);
char[] copyThree = new char[7];
copyThree=copyFrom.clone();
}
}
【问题讨论】:
-
这篇文章是相关的,但没有说明system.arraycopy是否是深度克隆。它确实提到克隆创建了一个浅拷贝,并且那里的示例说明了它。但是要知道 system.arraycopy 是否是带有插图的深度克隆,对 Java 初学者很有用
-
System.arraycopy() 按照它在 Javadoc 中所说的做,仅此而已,没有深拷贝。