StringBuffer vs StringBuilder
Java é uma linguagem orientada a objetos muito popular. Em Java, a classe String é fornecida para armazenar uma sequência de caracteres que não podem ser modificados (uma vez inicializados). Como alternativa, a linguagem de programação Java fornece dois tipos de sequências mutáveis de caracteres. Ou seja, quando os programadores precisam modificar uma determinada String (após a inicialização), precisam usar a classe StringBuffer ou a classe StringBuilder, em vez da classe String. StringBuffer foi introduzido no JDK 1.0 e a classe StringBuilder foi introduzida no JDK 1.5, na verdade como um substituto para a classe StringBuffer (para ambientes de thread único).
O que é StringBuffer?
A classe StringBuffer foi introduzida no JDK 1.0. A classe StringBuffer pertence ao pacote java.lang e é herdada do java.lang.object genérico. Os programadores não podem estender ainda mais, pois é uma aula final. A classe StringBuffer implementa as interfaces Serializable, Appendable e CharSequience. Um objeto da classe StringBuffer pode conter uma sequência de caracteres que é mutável e segura para threads. Isso significa que é muito semelhante a um objeto String, mas a sequência de caracteres (comprimento e conteúdo) pode ser alterada a qualquer momento após a inicialização do objeto StringBuffer. No entanto, isso deve ser feito usando os métodos específicos fornecidos pela classe StringBuffer. Existem duas operações principais na classe StringBuffer. Eles são fornecidos pelos métodos append () e insert (). Esses métodos estão sobrecarregados, portanto, eles podem aceitar dados de qualquer tipo, como inteiro e longo. Ambos os métodos primeiro transformam qualquer entrada em uma sequência e, em seguida, adiciona (acrescenta ou insere) os caracteres da sequência correspondente ao objeto Stribbuffer existente. O método append () adiciona a string convertida ao final do objeto StringBuffer existente, enquanto o método insert () adiciona os caracteres de entrada ao ponto de inserção especificado.
O que é StringBuilder?
A classe StringBuilder foi introduzida no JDK 1.5. A API StringBuilder é muito semelhante à API StringBuffer. De fato, a classe StringBuilder foi realmente introduzida como um substituto para a classe StringBuffer (para aplicativos de thread único). A classe StringBuilder pertence ao pacote java.lang e é herdada do java.lang.object genérico. É uma aula final e, portanto, os programadores não podem estendê-la. A classe StringBuilder implementa as interfaces Serializable, Appendable e CharSequience. Um objeto da classe StringBuilder pode conter uma sequência de caracteres que é mutável, mas não segura para threads. Isso significa que é muito semelhante a um objeto String, mas a string pode ser alterada a qualquer momento. Mas a classe StringBuilder não fornece sincronização e, portanto, é reivindicada como sendo mais rápida que a classe StringBuffer. A classe StringBuilder fornece métodos append () e insert () com funcionalidade exatamente semelhante à da classe StringBuffer.
Qual é a diferença entre StringBuffer e StringBuilder?
Embora as classes StringBuilder e StringBuffer possam ser usadas para seqüências mutáveis de caracteres em Java, elas têm uma diferença fundamental. Diferentemente da classe StringBuffer, a classe StringBuilder não é segura para threads e não fornece sincronização. Portanto, é recomendável que a classe StringBuilder seja usada no lugar da classe StringBuffer em aplicativos de thread único, pois alega-se que a classe StringBuilder será muito mais rápida que a classe StringBuffer (em circunstâncias normais).