Criando um StringBuilder
Existem três maneiras de construir um StringBuilder :
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder("animal");
StringBuilder sb3 = new StringBuilder(10);
O primeiro diz para criar um StringBuilder contendo uma seqüência vazia de caracteres e atribua sb1 para apontar para ele. O segundo diz para criar um StringBuilder contendo um valor específico e atribuir sb2 apontando para ele. Para os dois primeiros, ele diz ao Java para gerenciar a implementação de detalhes. O último exemplo diz ao Java que temos uma ideia de quão grande é o valor final será e gostaria que o StringBuilder reservasse um certo número de slots para caracteres.
Tamanho vs. capacidade
O processo por trás das cenas de como os objetos são armazenados não está no exame, mas algum conhecimento deste processo pode ajudá-lo a entender melhor e lembrar sobre StringBuilder.
Tamanho é o número de caracteres atualmente na sequência e capacidade é o número de caracteres que a sequência pode conter atualmente. Já que uma String é imutável, o tamanho e capacidade são as mesmas. O número de caracteres que aparecem na String tem o mesmo tamanho e capacidade.
Para StringBuilder, Java sabe que o tamanho provavelmente será alterado conforme o objeto é usado. Quando StringBuilder é construído, ele pode iniciar na capacidade padrão (que é 16) ou uma das escolhas do programador. No exemplo, solicitamos uma capacidade de 5. No Neste ponto, o tamanho é 0, pois nenhum caractere foi adicionado ainda, mas temos espaço para 5.
Em seguida, adicionamos quatro caracteres. Nesse ponto, o tamanho é 4, já que quatro slots são tirados. A capacidade ainda é 5. Então adicionamos mais três caracteres. O tamanho agora é 7 desde que nós temos usado até sete slots. Porque a capacidade não era grande o suficiente para armazenar sete caracteres, Java aumentou automaticamente para nós.