Czy zmienne lokalne w metodach statycznych są również statyczne?
Zastanawiam się, czy wszystkie zmienne lokalne stają się statyczne, jeśli zadeklarujemy je w metodzie statycznej?
na przykład:
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;
}
O ile rozumiem, że Java zawsze przechodzi przez wartość, ale dlaczego stan X zmienił się po wywołaniu changeX? Czy ktoś może to wyjaśnić? i czy każdy może wyjaśnić, w jaki sposób Java radzi sobie ze zmiennymi statycznymi pod względem alokacji pamięci? i co się stanie, jeśli przekazamy zmienną statyczną do funkcji jako parametru (wiem, że ludzie normalnie tego nie robią)