Junior — Middle
Explique como ocorre a passagem de dados para uma função, se os parâmetros são passados por valor.
sobes.tech IA
Resposta da IA
Em Java, os parâmetros são passados para os métodos por valor. Isso significa que, ao chamar um método, o valor do argumento é copiado e passado para o parâmetro da função.
Para tipos primitivos (int, boolean, etc.), o próprio valor é copiado.
Para tipos de referência, o valor da referência (o endereço do objeto) é copiado, mas não o objeto em si. Portanto, dentro do método, é possível modificar o estado do objeto ao qual a referência aponta, mas não é possível alterar a própria referência para que ela aponte para outro objeto fora do método.
Exemplo:
void modify(int x, StringBuilder sb) {
x = 10; // copia local é modificada
sb.append(" world"); // o objeto ao qual sb se refere é modificado
}
int a = 5;
StringBuilder str = new StringBuilder("Hello");
modify(a, str);
System.out.println(a); // 5
System.out.println(str.toString()); // Hello world
Aqui, o valor de a não mudará, mas o objeto str será modificado.