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