你用以下代码创建的对象:
char[] copyThree = new char[7];
将被垃圾回收。可以通过以下方式实现“最终结果”:
char[] copyThree = copyFrom.clone()
使用 System.arrayCopy
,copyFrom
和 copyTo
方法需要满足一定的要求,例如数组类型和数组大小。
使用 clone
方法创建一个新的数组,并将其内容与另一个数组相同(相同对象 - 同一引用,而不是具有相同内容的不同对象)。当然,数组类型应该是相同的。
两种方式都复制数组内容的引用。它们不会 clone
对象:
Object[] array = new Object[] {
new Object(),
new Object(),
new Object(),
new Object()};
Object[] otherArray = new Object[array.length];
Object[] clonedArray = array.clone();
System.arraycopy(array, 0, otherArray, 0, array.length);
for (int ii=0; ii<array.length; ii++) {
System.out.println(array[ii]+" : "+otherArray[ii]+" : "+clonedArray[ii]);
}
提供:
java.lang.Object@1d256a73 : java.lang.Object@1d256a73 : java.lang.Object@1d256a73
java.lang.Object@36fb2f8 : java.lang.Object@36fb2f8 : java.lang.Object@36fb2f8
java.lang.Object@1a4eb98b : java.lang.Object@1a4eb98b : java.lang.Object@1a4eb98b
java.lang.Object@2677622b : java.lang.Object@2677622b : java.lang.Object@2677622b