Junior — Middle
Quais são as vantagens e desvantagens de usar classes cujos objetos não podem ser alterados após a criação?
sobes.tech IA
Resposta da IA
As classes com objetos imutáveis em Java têm as seguintes vantagens e desvantagens:
Vantagens:
- Segurança de thread: objetos imutáveis podem ser usados com segurança em ambientes multithread sem sincronização.
- Facilidade de compreensão: o estado do objeto não muda após a criação, o que simplifica a depuração e compreensão do código.
- Uso como chaves: esses objetos podem ser usados em coleções onde a imutabilidade é importante (por exemplo, em
HashMap), sem risco de alterar o hash. - Caching e otimizações: objetos imutáveis são mais fáceis de fazer cache e reutilizar.
Desvantagens:
- Desempenho: para modificar um objeto, é necessário criar uma nova instância, o que pode acarretar custos adicionais de memória e tempo.
- Flexibilidade: a impossibilidade de alterar o estado do objeto após sua criação pode complicar alguns cenários onde a mutabilidade é necessária.
Exemplo de uma classe imutável:
public final class ImmutablePoint {
private final int x;
private final int y;
public ImmutablePoint(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() { return x; }
public int getY() { return y; }
}