A string não é um tipo simples, mas uma classe usada para representar uma sequência de caracteres. Os próprios personagens cumprem os padrões Unicode, e há duas maneiras de inicializá -los.
Por exemplo: String cumprimentando = "Bom dia! /N";
Saudação de string = new string (= "bom dia! /N");
A característica da string é que, uma vez atribuída, o objeto de caractere aponta que não pode ser alterado.
StringBuffer é um objeto String com as características da passagem de referência de objeto.
O objeto StringBuffer pode chamar seus métodos para aumentar, inserir, inserir, modificar e excluir operações dinamicamente, e não precisa especificar o tamanho com antecedência como uma matriz, de modo a alcançar o efeito de inserir personagens várias vezes e tirá -los de uma vez , por isso é muito flexível e conveniente operar strings.
Depois que a string final desejada é gerada através do StringBuffer, ela pode ser chamada de método ToString para convertê -lo em um objeto String.
A posição dessas duas classes no processamento de cordas é evidente. Vamos explicar dos seguintes pontos
1. Comparação dos dois em termos de velocidade de execução: stringbuffer> string
2.String <StringBuffer Motivo String: String constante StringBuffer: Variável de criação de caracteres do nome acima, a string é uma "constante de criação de caracteres", ou seja, um objeto imutável. Você pode ter uma pergunta sobre como entender esta frase, como este código:
String S = "ABCD";
Obviamente, mudamos as variáveis de strings, por que ela disse que não mudou? Um objeto S é usado para executar a segunda linha de código, o que significa que o objeto S não mudou antes, por isso dizemos que o tipo de string é um objeto imutável. Na verdade, novos objetos são criados constantemente, e os objetos originais se tornarão lixo e serão coletados pelo GC.
Mas StringBuffers são diferentes. A velocidade será mais rápida
3. Um exemplo especial:
A cópia do código é a seguinte:
String str = "Este é apenas um" + "simples" + "teste";
StringBuffer Builder = new StringBuilder ("Este é apenas um"). Append ("simples"). Append ("teste");
Você ficará surpreso ao descobrir que a velocidade de gerar objetos STR é simplesmente muito rápida e, neste momento, o StringBuffer não tem nenhuma vantagem na velocidade. Na verdade, este é um truque da JVM, de fato:
String str = "Este é apenas um" + "simples" + "teste";
Na verdade:
String str = “Este é apenas um teste simples”;
Portanto, não leva muito tempo. Mas o que você deve observar aqui é que, se sua sequência vier de outro objeto de string, a velocidade não será tão rápida, por exemplo:
String str2 = "Este é apenas um" String str3 = "simples";
Neste momento, a JVM fará isso de maneira regular da maneira original.
4.StringBuilder e StringBuffer
StringBuilder: StringBuffer que não é seguro: Segure quando somos usados por vários threads no buffer de string, a JVM não pode garantir que a operação do StringBuilder seja segura. . de. Obviamente, na maioria dos casos, operamos em um único thread; portanto, na maioria dos casos, é recomendável usar o StringBuilder em vez do StringBuffer, que é o motivo da velocidade.
Resumo do uso dos três:
1. Se você deseja operar uma pequena quantidade de dados, use = string
2. Opere uma grande quantidade de dados em um único buffer de string rosqueado = stringbuilder
3. Opere uma grande quantidade de dados em um buffer de string multi-thread = stringbuffer