Являются ли локальные переменные в статических методах также статическими?
Мне интересно, все ли локальные переменные становятся статическими, если мы объявляем их статическим методом?
например:
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 всегда передается по значению, но почему состояние X изменилось после того, как мы сделали вызов changeX? Кто-нибудь может объяснить это, пожалуйста? и кто-нибудь может объяснить, как Java имеет дело со статическими переменными с точки зрения распределения памяти? и что произойдет, если мы передадим статическую переменную в функцию в качестве параметра (я знаю, что люди обычно этого не делают)