JAVA方法中陣列作為形參,傳的是引用
阿新 • • 發佈:2019-02-04
之前一直以為傳陣列和基本型別都是傳的值,今天做題時發現傳陣列傳的其實是引用。
public class Tests {
public static void main(String[] args) {
int[] s = { 1, 2, 3, 4, 5 };
change1(s);
for (int i : s) {
System.out.print(" " + i);
}
System.out.println();
change2(s);
for (int i : s) {
System.out.print(" " + i);
}
System.out.println();
}
// 傳遞的引用,直接修改內容,,s+0,s+1的值被改變
private static void change1(int[] s) {
s[0] = 6;
s[1] = 7;
}
// 傳遞的也是引用,但s=b無法改變s的指標,所以s內容不會變
private static void change2(int[] s) {
int [] b = { 5, 4, 3, 2, 1 };
s = b;
}
}
輸出內容
6 7 3 4 5
6 7 3 4 5