我想知道如果我们在静态方法中声明所有局部变量是否都变为静态?
例如:
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如何在内存分配方面处理静态变量吗?如果我们将静态变量作为参数传递给函数会发生什么(我知道人们通常不会这样做)