StringBuffer vs StringBuilder
Java é uma linguagem orientada a objetos muito popular. Em Java, a classe String é fornecida para conter uma sequência de caracteres que não pode ser modificada (uma vez inicializada). 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), eles precisam usar a classe StringBuffer ou a classe StringBuilder, em vez da classe String. StringBuffer foi introduzida no JDK 1.0 e a classe StringBuilder foi introduzida no JDK 1.5, na verdade como uma substituição 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 estendê-lo ainda mais, pois é uma aula final. A classe StringBuffer implementa interfaces Serializable, Appendable e CharSequience. Um objeto da classe StringBuffer pode conter uma sequência de caracteres que é mutável e segura para thread. 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 são capazes de aceitar dados de qualquer tipo, como inteiro e longo. Ambos os métodos transformam primeiro qualquer entrada em uma string e, em seguida, adiciona (acrescenta ou insere) os caracteres da string 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. Na verdade, a classe StringBuilder foi introduzida como uma substituição 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 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, é considerada mais rápida do que usar 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 sequências mutáveis de caracteres em Java, elas têm uma diferença fundamental. Ao contrário da classe StringBuffer, a classe StringBuilder não é segura para threads e não fornece sincronização. Portanto, é recomendado que a classe StringBuilder seja usada no lugar da classe StringBuffer em aplicativos de thread único, porque afirma-se que a classe StringBuilder será muito mais rápida do que a classe StringBuffer (em circunstâncias normais).