Tiago Ferreira
Tiago Ferreira17/08/2025 20:28
Compartilhe

Java: String x String Builder x StringBuffer

    String:

    ※ é uma classe do Java que representa uma sequência de caracteres (como palavras, frases, nomes). Ela oferece diversos métodos para trabalhar com texto: como comparar, dividir, juntar, verificar tamanho etc.

    String Literal:

    image

    ※ Aqui usamos aspas diretamente. Esse tipo de declaração é simples e comum.


    Criação com a Classe String:

    image

    ※ Esta forma também funciona, mas é menos usada no dia a dia. Ela cria explicitamente um novo objeto.

    Característica importante:

    ※ Strings são imutáveis, ou seja, não podem ser modificadas depois de criadas. Quando alteramos uma String, na verdade estamos criando uma nova.

    Exemplo:

    image

    Parece que alteramos a String texto, certo? Mas na verdade, o que aconteceu foi:

    •  A "Olá" continua existindo na memória como estava.
    • O Java criou uma nova String com o conteúdo "Olá, mundo!"
    • A variável texto foi atualizada para apontar para essa nova String.

    Por que a imutabilidade importa?

    • Evita bugs em ambientes multithread (vários processos rodando ao mesmo tempo).
    • Permite que Strings sejam compartilhadas sem riscos de serem modificadas por acidente.

    Alguns métodos uteis da Classe String:

    image

    image

    image

    image

    image

    StringBuffer x StringBuilder:

    ※ são mutáveis: podem ser modificados sem criar um novo objeto.

    StringBuffer: 

    • permite criar e modificar uma sequência flexível de caracteres.
    • É thread-safe, ou seja, seguro para uso com múltiplas threads acessando/modificando ao mesmo tempo.
    • Por ser sincronizado, tende a ser mais lento que StringBuilder.

    image

    StringBuilder:

    • Muito parecido com StringBuffer, mas não é sincronizado.
    • Isso significa que NÃO é thread-safe, porém é mais rápido.
    • Ideal para situações em que a segurança de threads não é necessária, como entrevistas ou competições.

    image

     Comparação: String vs StringBuilder vs StringBuffer

    image

    Um Pequeno programa para mostra a diferença de desempenho:

    image

    image

    Compartilhe
    Comentários (0)