Duvida com Sintaxe

public class todasmet extends JApplet {

    StringBuffer aaa = new StringBuffer();

    public void init() {
      System.out.println(aaa.append("\n stop"));
    }

eu queria saber o que o atributo “append” e o “StringBuffer” fazem.
alguem poderia me explicar ?

http://www.guj.com.br/java/48531-stringbuffer-x-stringbuilder
http://www.guj.com.br/java/187610-stringbuffer-x-stringbuilder
http://download.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuffer.html

Vai ajudar :smiley:

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).

para otimizar entao a execução qual outro atributo eu poderia usar ?

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 ^^

Otimizar a execução do que?

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
        }
    }

}