Diferença Entre String StringBuffer E StringBuilder Em Java

Índice:

Diferença Entre String StringBuffer E StringBuilder Em Java
Diferença Entre String StringBuffer E StringBuilder Em Java

Vídeo: Diferença Entre String StringBuffer E StringBuilder Em Java

Vídeo: Diferença Entre String StringBuffer E StringBuilder Em Java
Vídeo: JAVA: DIFERENCIAS ENTRE STRING, STRINGBUFFER Y STRINGBUILDER 2024, Novembro
Anonim

Diferença chave - String vs StringBuffer vs StringBuilder em Java

String, StringBuffer e String Builder são classes em Java. String é amplamente usada na programação Java. Uma vez que um objeto String é criado, não é possível alterá-lo. Cada vez que ocorre uma alteração na String, ela cria uma nova String. Mesmo que seja uma concatenação com uma String existente, ela cria uma nova String. Isso causa perda de memória. As classes StringBuffer e StringBuilder em Java são usadas para modificar String. A principal diferença entre String, StringBuffer e StringBuilder em Java é que String é uma classe para criar um objeto do tipo String que é uma sequência de caracteres, StringBuffer é uma classe usada para modificar Strings que fornece segurança de thread e StringBuilder é um classe que é usada para modificar Strings que não fornecem segurança de thread.

CONTEÚDO

1. Visão geral e diferença principal

2. O que é String em Java

3. O que é StringBuffer em Java

4. O que é StringBuilder em Java

5. Semelhanças entre String StringBuffer e StringBuilder em Java

6. Comparação lado a lado - String vs StringBuffer vs StringBuilder em Java na forma tabular

7. Resumo

O que é String em Java?

A classe String está no pacote java.lang. Cada vez que o programador cria uma String, é um objeto do tipo String. Strings têm significado imutável uma vez que o objeto é criado, ele não pode ser alterado. Objetos criados usando classes de invólucro como Integer, Byte, Float, Double também são imutáveis. Um literal de string é colocado entre aspas duplas. por exemplo, “Hello World”. Cada vez que um literal de string é criado, a Java Virtual Machine (JVM) verifica o conjunto de constantes de String. Se a String existe, uma referência ao pool de constantes String é retornada. Se for uma nova String, esse objeto será criado no pool de constantes String.

Diferença entre String StringBuffer e StringBuilder em Java
Diferença entre String StringBuffer e StringBuilder em Java

Figura 01: Programa Java usando String, StringBuffer e StringBuilder

Consulte o código abaixo.

String s1 = “Olá”;

s1 = s1 + “Mundo”;

System.out.println (s1);

Na primeira instrução, s1 está se referindo ao “Hello” no pool de constantes String. Na segunda instrução, a JVM não altera a String existente. Em vez disso, ele cria uma nova String como “Hello World” e s1 agora se refere a essa nova String. O objeto “Hello” existente ainda existe no pool de constantes String.

Se houver um código que seja, String s1 =”Olá”;

String s2 = s1;

ambos s1, s2 se referirão ao objeto String “Hello”.

O que é StringBuffer em Java?

A classe StringBuffer é usada para tornar os objetos String mutáveis. Portanto, esses objetos podem ser modificados. StringBuffer define quatro construtores. StringBuffer (), StringBuffer (int size), StringBuffer (String str), StringBuffer (charSequence ch)

Consulte o código abaixo, StringBuffer s1 = novo StringBuffer (“Olá”);

s1.append (“Mundo”);

System.out.println (s1);

Na declaração 1, s1 está se referindo ao objeto “Hello” em um heap. O objeto é mutável porque foi criado usando StringBuffer. Na declaração 2, “World” é anexado ao mesmo objeto String “Hello”.

Objetos String criados com a classe StringBuffer podem economizar memória. StringBuffer fornece segurança de thread porque dois threads não podem acessar o mesmo método na classe StringBuffer simultaneamente. A segurança do thread diminui o desempenho do StringBuffer. A classe StringBuffer contém métodos como append (), insert (), reverse (), replace ().

O que é StringBuilder em Java?

A classe StringBuilder é usada para tornar os objetos String mutáveis. Portanto, esses objetos podem ser modificados. A funcionalidade é semelhante a StringBuffer, mas não fornece segurança de thread. StringBuilder tem construtores como StringBuilder (), StringBuilder (int size), StringBuilder (String str).

Consulte o código abaixo.

StringBuilder s1 = new StringBuilder (“Olá”);

s1.append (“Mundo”);

System.out.println (s1);

Na declaração 1, s1 está se referindo ao objeto “Hello” em um heap. O objeto é mutável porque foi criado usando StringBuilder. Na declaração 2, “World” é anexado ao mesmo objeto String “Hello”. Não há criação de um objeto String completamente novo.

Objetos String criados com a classe StringBuilder podem economizar memória. Ao contrário de StringBuffer, StringBuilder não fornece segurança de thread porque dois threads podem acessar o mesmo método na classe StringBuilder simultaneamente. A classe StringBuilder contém métodos como append (), insert (), reverse (), replace ().

Qual é a semelhança entre String, StringBuffer e StringBuilder em Java?

Todos podem ser usados para criar Strings

Qual é a diferença entre String StringBuffer e StringBuilder em Java?

Artigo Diff meio antes da tabela

String vs StringBuffer vs StringBuilder

Corda A string é uma classe Java usada para criar um objeto do tipo String, que é uma sequência de caracteres.
StringBuffer StringBuffer é uma classe Java usada para criar objetos String, que podem ser modificados com segurança de thread.
StringBuilder StringBuilder é uma classe que é usada para criar objetos string, que podem ser modificados sem segurança de thread.
Mutabilidade
Corda A string é uma classe imutável.
StringBuffer StringBuffer é uma classe mutável.
StringBuilder StringBuilder é uma classe mutável.
Segurança da linha
Corda Métodos de String são thread-safe.
StringBuffer Métodos de StringBuffer são thread-safe e sincronizados.
StringBuilder Os métodos de StringBuilder não são seguros por thread e não são sincronizados.
atuação
Corda A corda é rápida.
StringBuffer StringBuffer é lento.
StringBuilder StringBuilder é rápido.

Resumo - String vs StringBuffer vs StringBuilder em Java

String, StringBuffer e StringBuilder parecem iguais, mas têm significados diferentes. Todas essas são classes Java. A diferença entre String, StringBuffer e StringBuilder em Java é que, String é uma classe para criar um objeto do tipo String, que é um conjunto de caracteres, StringBuffer é uma classe que é usada para modificar Strings e fornecer segurança de thread, enquanto StringBuilder é um classe que é usada para modificar Strings que não fornecem segurança de thread.

Baixe o PDF String vs StringBuffer vs StringBuilder em Java

Você pode baixar a versão PDF deste artigo e usá-la para fins off-line de acordo com a nota de citação. Faça download da versão em PDF aqui. Diferença entre String StringBuffer e StringBuilder em Java

Recomendado: