数组复制,复制的是对象引用的地址,所以复制后指向同一地址,而不是重新创建对象
用System.arraycopy(被复制数组引用名 , 角标 , 复制的数组引用名 , 角标 , 复制的数组长度);
public class TestArrayCopy {
public static void main(String args[]) {
String[] s =
{"Microsoft","IBM","Sun","Oracle","Apple"};
String[] sBak = new String[6];
System.arraycopy(s,0,sBak,0,s.length);
for(int i=0;i<sBak.length;i++){
System.out.print(sBak[i]+" ");
}
System.out.println();
int[][] intArray = {{1,2},{1,2,3},{3,4}};
int[][] intArrayBak = new int[3][];
System.arraycopy
(intArray,0,intArrayBak,0,intArray.length);
intArrayBak[2][1] = 100;
for(int i = 0;i<intArray.length;i++){
for(int j =0;j<intArray[i].length;j++){
System.out.print(intArray[i][j]+" ");
}
System.out.println();
}
}
}
其中,两个数组的引用指向同一对象,所以改变其中一个数组引用对象,另一个也会发生变化