wpjr2’s Weblog

Artigos e tutoriais úteis

Objetos Mutáveis e Imutáveis

Posted by wpjr2 em abril 14, 2008

Na programação orientada a objetos, um objeto imutável é definido como
um objeto em que seu estado não pode ser modificado após sua criação.
Isto é um contraste em comparação à um objeto mutável, no qual pode
ser modificado após sua criação. Um objeto pode ser totalmente
imutável (caso mais comum) ou alguns atributos do objeto podem ser
declarados imutáveis, através da palavra reservada “final” nestes
campos.

O padrão utilizado neste recurso para objetos Java é denominado de
“copy on write” (COW) ou copiar durante a escrita. Nesta técnica,
quando deseja-se copiar um objeto, cria-se uma nova variável que
possuirá a mesma referência ao objeto anterior, apontando assim para o
mesmo objeto em memória. Quando o valor for modificado, uma nova
referência será criada apontando para o objeto modificado. Na
essência, o desenvolvedor ou usuário final possui a sensação de que
está utilizando objetos mutáveis, apesar destes serem imutáveis na
realidade.

O principal objetivo de se utilizar a imutabilidade é de melhorar a
eficiência em tempo de execução no instanciamento de objetos, economia
de espaço físico de memória e velocidade no instanciamento. Outras
linguagens além do Java (Python, .NET) por exemplo, defnem o String
como objetos imutáveis. Para versões mutáveis de String em Java,
utiliza-se o StringBuffer e StringBuilder (recentemente criado no
JavaSE 5.0), em casos onde alterações em uma String serão bastante
comuns.

Além da classe String, todas as classes wrapper primitivas (Integer, Double,
Float, Short, Character, Boolean, Byte e Long) também são imutáveis.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: