Sobes.tech
Junior — Middle

Os argumentos em Java são passados por valor ou por referência?

sobes.tech IA

Resposta da IA

Em Java, todos os argumentos são passados por valor. Isso significa que, ao chamar um método, o valor do argumento é copiado.

Para tipos primitivos (int, double, etc.), o próprio valor é copiado.

Para objetos, o valor da referência ao objeto é copiado, ou seja, um ponteiro é copiado, mas não o objeto em si. Portanto, dentro do método, é possível alterar o estado do objeto ao qual o parâmetro se refere, mas não é possível alterar a própria referência para que ela aponte para outro objeto.

Exemplo:

void modify(Integer a, MyObject obj) {
    a = 10; // copia local é alterada, não afeta o original
    obj.field = 20; // o campo do objeto é alterado, isso é visível de fora
}
Os argumentos em Java são passados por valor ou por… - sobes.tech