Responda conforme a questão:
O que realmente significa o conceito de imutabilidade? O que ocorre com variáveis quando há necessidade de mudarem de valor? (4 escores)

Passo 1

O enunciado pergunta qual é o verdadeiro significado do conceito de imutabilidade em linguagens de programação e o que acontece internamente com as variáveis quando precisamos atribuir a elas um novo valor. Vamos ver a teoria por trás desse conceito e em seguida descrever o comportamento prático.

Passo 2

Imutabilidade significa que, uma vez criado, o valor de um objeto não pode ser alterado. Em vez de “modificar” o objeto existente, toda operação que parecer alterar acaba criando um novo objeto com o resultado desejado, deixando o original intacto.

Passo 3

Em linguagens que tratam tipos imutáveis (por exemplo, strings em Java, inteiro em Haskell, tuplas em Python), a variável funciona como um rótulo ou referência a um objeto específico. Quando você faz algo como
x = 5
e depois
x = 7
não há mudança em “5”: existe um objeto inteiro com valor 5 e outro com valor 7, e a variável x simplesmente deixa de apontar para o 5 e começa a apontar para o 7.

Passo 4

Na prática, ao “mudar” o valor de uma variável imutável:
  1. O sistema aloca ou reutiliza um bloco de memória para armazenar o novo valor.
  2. A referência da variável é atualizada para esse novo bloco.
  3. Se ninguém mais referenciar o objeto antigo, ele fica elegível para coleta de lixo (garbage collection).
Ou seja, a variável não altera o objeto, ela apenas passa a referenciar outro objeto.

Resposta

Imutabilidade é a propriedade de um valor permanecer inalterado após sua criação. Quando atribuímos um “novo valor” a uma variável imutável, na verdade criamos um objeto novo e atualizamos o rótulo (a referência) da variável para esse novo objeto; o valor antigo permanece intacto até não ser mais referenciado, quando então pode ser coletado pelo garbage collector.

Exercícios relacionados