Strings são classes imutáveis. Nenhum método da classe String jamais modifica seu conteúdo. Apenas cópias da String original modificadas são retornadas.
O que significa que se vc fizer:
String nome = "Vinícius";
String sobrenome = " Godoy";
String nome += sobrenome;
Você terá gerado uma terceira String chamada “Vinícius Godoy” e só então terá atribuído ao nome (que ainda conterá “Vinícius”, até que a atribuição seja feita).
Isso tem um problema sério: se você precisar mudar muito uma String, você terá um impacto muito negativo na performance, pois ficará criando objetos a torto e a direita.
O StringBuilder resolve esse problema, pois ele é uma espécie de versão modificável da String. O método append faz uma concatenação de texto, com a diferença de que um novo string builder não é gerado. Quando vc termina de montar seu texto, basta chamar o método toString() do StringBuilder, para gerar a String final, imodificável.
O StringBuffer é idêntico ao StringBuilder, mas tem todos os métodos sincronizados. Por isso, na maior parte das vezes ele é mais ineficiente, e não deve ser utilizado.
O código que vc criou cria um StringBuffer vazio, concatena o texto “\n stop”) ao final dele e, implicitamente, chama o toString() (quando o println é feito, ele dá um toString() no objeto que vc passar por parâmetro).
Depende de qual maneira você pretende otimizar!
Faça uma pesquisa de como você faria isso. Não espere que respondam. Pesquisando você ganha mais conteúdo.
Aí na sua pesquisa obtendo dúvidas é coerente retornar ^^
cara gostaria que voce tirasse minha duvida se possivel
to tentando fazer um programinha em java que armazene no vetor os dados saldo da conta e codigo e fazer uma busca pelo codigo e apresentar o saldo do codigo digitado se encontrado, se nao exibir a mensagem codigo nao encontrado, cara to tentando fazer em java mas na hora da procura nao estou conseguindo; aguardo resposta, agradeco a atencao
public class Conta {
String codigoConta;
double saldoConta;
}
class TestaConta {
public static void main(String[] args) {
int posicao;
Conta[] registro = new Conta[4];
for (posicao = 0; posicao < 4; posicao++) {
registro[posicao] = new Conta();
registro[posicao].codigoConta = “Teste” + posicao;
registro[posicao].saldoConta = 5000;
}
Conta bd = new Conta();
bd.codigoConta = "abc";
bd.saldoConta = 5000;
registro[0] = bd;
Conta bd2 = new Conta();
bd2.codigoConta = "abc";
bd2.saldoConta = 5000;
registro[1] = bd2;
String codigo = JOptionPane.showInputDialog("Digite o valor do codigo");
for (posicao = 0; posicao < 4; posicao++) {
if (codigo == ) {
//nessa parte aqui que nao consigo ir mais adiante
}
}
}