As variáveis locais em métodos estáticos também são estáticas?
Eu estou querendo saber se todas as variáveis locais se tornam estáticas se as declararmos em um método estático?
por exemplo:
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;
}
Tanto quanto eu entendo que Java é sempre passar por valor, mas por que o estado de X mudou depois que fizemos a chamada changeX? Alguém pode explicar isso por favor? e alguém pode explicar como o Java lida com variáveis estáticas em termos de alocação de memória? e o que acontece se passarmos uma variável estática para uma função como um parâmetro (eu sei que as pessoas normalmente não fazem isso)