1
resposta

[Dúvida] Se um objeto do tipo String é imutável pq ao alterar a variável, não é necessário

No exemplo mostrado:

String nome = “Maria”;
nome = “Alice”;

Pq (se imutável) não é necessário a declaração do tipo novamente? Seria um paradoxo?

String nome = “Maria”;
String nome = “Alice”;

Detalhe, eu entendo que a tipagem só é realizada uma vez na declaração da variável.

1 resposta

Bom dia Otavio! Tudo bem com você?

Entendo a sua dúvida e ela é bem comum quando começamos a trabalhar com a imutabilidade em Java, especialmente com o tipo String. Quando falamos que um objeto String é imutável, isso significa que, após a criação, o valor do objeto em si não pode ser alterado. No entanto, o que acontece no seu exemplo é que a variável nome não está sendo modificada, mas sim está sendo apontada para um novo objeto String.

Vamos entender isso passo a passo:

String nome = "Maria";
nome = "Alice";
  • Imutabilidade do Objeto: Quando criamos String nome = "Maria";, um objeto String com o valor "Maria" é criado na memória. Como String é imutável, esse valor não pode ser alterado

  • Mudança de Referência: Quando fazemos nome = "Alice";, o que acontece é que a variável nome, que antes apontava para o objeto "Maria", agora aponta para um novo objeto String com o valor "Alice". O objeto "Maria" ainda existe na memória, mas a variável nome não o referencia mais

A parte que você menciona sobre a tipagem só ser declarada uma vez está correta. A tipagem serve para indicar ao compilador que tipo de dados a variável vai armazenar. Uma vez que o tipo é declarado (String neste caso), podemos mudar o valor referenciado pela variável quantas vezes quisermos, desde que o novo valor seja compatível com o tipo da variável.

Em resumo temos que, a imutabilidade se aplica ao objeto String em si, e não à variável que o referencia. A variável nome pode ser alterada para apontar para um novo objeto String sem precisar de uma nova declaração de tipo.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!