ローカル変数を静的メソッドで宣言すると、すべてのローカル変数が静的になるのでしょうか?
例えば:
public static void A(){
int x [] = {3,2};
changeX(x);
for (int i = 0; i< x.length; i++){
System.out.println(x[i]); // this will print -1 and 1
}
}
private static void changeX(int[] x){
x[0] = -1;
x[1] = 1;
}
私が理解している限り、Java は常に値渡しですが、changeX 呼び出しを行った後に X の状態が変わったのはなぜですか? 誰でもそれを説明できますか?Javaがメモリ割り当てに関して静的変数をどのように処理するかを誰かが説明できますか? 静的変数をパラメーターとして関数に渡すとどうなりますか (通常、人々はそうしないことを知っています)。