domingo, 29 de dezembro de 2013

Utilizando concatenação de Strings com StringBuilder

Já vimos em posts passados a classe String é responsável pelo armazenamento de dados do tipo texto, isto é, guarda uma sequência de caracteres. Esta classe é java.lang.String e por incrível que pareça os objetos String são imutáveis, ou seja, depois que criado seu conteúdo jamais é alterado. Já vimos anteriormente, que na verdade quando fazemos s = "aa" e depois s = "bb", existem 3 objetos uma para cada string imutável e um objeto s que aponta primeiro para "aa" e depois para "bb". A classe é final, ou seja, não pode ser alterada por nenhuma outra classe.

Outra classe que permite manipular strings é StringBuffer (java.lang.StringBuffer) que é geralmente recomendada para armazenarmos um grande número de caracteres. Esta classe cria objetos mutáveis, ou seja, diferente de String, o seu valor (valor armazenado em sua instância) pode ser alterado,  pode ser alterado. Também é uma classe final. Esta classe tem outra característica importante: seus métodos são synchronized, assim pode ser utilizada em aplicações multithread sem qualquer alteração.

Existe ainda uma terceira classe - java.lang.StringBuilder - que implementa a mesma API de StringBuffer porém não é thread safe (seus métodos não são synchronized). Como é a mesma API apresentaremos neste post somente exemplos com StringBuffer.



Nenhum comentário:

Postar um comentário