0
通過引用調用的問題我知道,Java是通過引用調用, 我有一個關於這些代碼的問題有關使用Java
public class test {
public static void main(String[] argv){
ArrayList<Integer> a = new ArrayList<Integer>();
int aa = 5;
int[] aaa ={0,1,2};
a.add(1);
aaa[0]=999;
System.out.println("ArrayList "+ a.toString());
System.out.println("int "+ aa);
System.out.println("Array "+ Arrays.toString(aaa));
add2(a,aa,aaa);
System.out.println("ArrayList"+ a.toString());
System.out.println("int "+ aa);
System.out.println("Array "+ Arrays.toString(aaa));
}
private static void add2(ArrayList<Integer> a1,int aa1,int[] aaa1)
{
a1.add(2);
aa1=aa1+10;
aaa1[2]=999;
}
結果是
ArrayList: [1]
int: 5
Array: [999, 1, 2]
ArrayList: [1, 2]
int: 5
Array: [999, 1, 999]
爲什麼ArrayList
和Array
將改變,當我呼叫功能 和「int」不會改變
有人可以向我解釋這些情況,非常感謝
[不,java總是按值調用。](http://stackoverflow.com/questions/40480/is-java-pass-by-reference?rq=1)。 –
**否** Java是按值調用的。 – Makoto
您期待的結果是什麼? –