大家来比较一下这两个程序
 第一个程序
public class TestArrayCopy1 {
public static void main(String args[]) {
String[] s = { "Mircosoft", "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] + " ");
} sBak[2] = "javascript";                   // 注意一下这里,sBak数组改变以后,s数组不改变 ,为什么
for (int i = 0; i < s.length; i++) {
System.out.print(s[i] + " ");
} }
}
以下是运行结果
//  Mircosoft IBM Sun Oracle Apple null              sBak数组        
//  Mircosoft IBM Sun Oracle Apple                    s数组 第二个程序
public class ArrayCopy2 {
public static void main(String args[]) {
String[][] s = { {"A", "B"}, {"C", "D", "E"},{"F"} };
String[][] sBak = new String[3][];
System.arraycopy(s, 0, sBak, 0, s.length); for (int i = 0; i < sBak.length; i++) {
for(int j=0; j<sBak[i].length; j++) {
System.out.print(sBak[i][j] + " ");
}
}
System.out.println("");
sBak[2][0] = "javascript";                   //   注意一下这里,sBak数组改变以后,s数组跟着改变,s数组也改变了,为什么 
for (int i = 0; i < s.length; i++) {
for(int j=0; j<s[i].length; j++) {
System.out.print(s[i][j] + " ");
}
}
}
}以下是运行结果 
//  A B C D E F
//  A B C D E javascript
上面的运行结果没问题,我测试了好几次