我試圖與Java參考玩,我得到了一個有趣的情況。 這下面這段代碼提供了不可預知的輸出到我。我想修改數組,字符串和函數中的整數。的Java passByValue或參考混亂
public static void main(String[] args){
int[] arr = {1,2,3,4,5};
Integer b = 6;
String s = "ABC";
fun(arr, b,s);
for(int i : arr)
System.out.print(i + " ");
System.out.println();
System.out.println("b="+b);
System.out.println("s="+s);
}
public static void fun(int[] a, Integer b, String s){
b = b*10;
for(int i =0; i<a.length; i++)
{
a[i] = a[i]+10;
}
s=s+"PIY";
}
現在,這給了以下的輸出:
11 12 13 14 15
b=6
s=ABC
我不明白爲什麼陣列得到改變,但字符串和整數沒有得到裏面的功能改變。
注意有一個'B ='和'S ='但沒有一個'='一般對象的情況下,是否正確?這是因爲你正在修改'a',而不是重新分配它。 – shmosel