大家来比较一下这两个程序
第一个程序
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
上面的运行结果没问题,我测试了好几次
第一个程序
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
上面的运行结果没问题,我测试了好几次
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货