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