私たちは彼らが静的メソッドで宣言した場合、すべてのローカル変数が静的になるん疑問に思って?例えば静的メソッド内のローカル変数は、静的ていますか?
:私の知る限りでは、Javaは常に値渡しですが、私たちはchangeXの呼び出しを行った後、なぜXの状態が変更されたことを理解し
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がメモリ割り当ての観点から静的変数をどのように扱うのか説明できますか?私たちは(私は人々が正常にことをしないだろう知っている)、パラメータとして関数に静的変数を渡す場合、何が起こることは
staticはローカル変数に意味を持たないので意味がありません。静的メソッドであるかインスタンスメソッドであるかは、ローカル、期間です。 –
ローカル変数または一時変数です。機能が終了すると、スコープはありません。 – Subs
配列はJavaのオブジェクトです。配列の参照は、呼び出されるときにchangeXに渡されるため、配列内の要素はchangeX内で変更できます。 –