Diferença entre StringBuffer e StringBuilder

Anonim

StringBuffer vs StringBuilder

Java é uma linguagem orientada a objetos muito popular. Em Java, a classe String é fornecida para manter uma seqüência de caracteres que não podem ser modificados (uma vez inicializado). Alternativamente, a linguagem de programação Java fornece dois tipos de seqüências mutáveis ​​de caracteres. Ou seja, quando os programadores precisam modificar uma certa String (após a inicialização), eles 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 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 java. pacote de idioma e é herdado do java genérico. lang. objeto. Os programadores não podem estendê-lo ainda mais, pois é uma classe final. A classe StringBuffer implementa interfaces Serializable, Appendable e CharSequience. Um objeto da classe StringBuffer pode conter uma seqüência de caracteres que é mutável e thread-safe. Isso significa que é muito semelhante a um objeto String, mas a seqüê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 por métodos de anexar () e inserir (). 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 em primeiro lugar transformam qualquer entrada em uma string e, em seguida, adiciona (anexa ou insere) os caracteres da seqüência correspondente ao objeto Stribbuffer existente. O método append () adiciona a seqüência convertida ao final do objeto StringBuffer existente, enquanto o método insert () adicionará 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 realmente introduzida como uma substituição para a classe StringBuffer (para aplicativos de thread único). A classe StringBuilder pertence ao java. pacote de idioma e é herdado do java genérico. lang. objeto. É uma classe 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 seqüência de caracteres que é mutable, mas não seguro para thread. 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, é afirmado ser mais rápido do que usar a classe StringBuffer. A classe StringBuilder fornece métodos append () e insert () com funcionalidades exatamente semelhantes às 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. Ao contrário da classe StringBuffer, a classe StringBuilder não é thread-safe e não fornece sincronização. Portanto, recomenda-se que a classe StringBuilder seja usada no lugar da classe StringBuffer em aplicativos single-thread, porque é afirmado que a classe StringBuilder será muito mais rápida que a classe StringBuffer (em circunstâncias normais).