The mais previsíveis da implementação de Cordas are1. Não ser capaz de subclasse de Cordas significa que não é possível adicionar comportamento a corda para o seu próprio needs.2. O ponto anterior significa que todo o acesso deve ser através do conjunto restrito de métodos atualmente disponíveis de corda, impondo overhead.3 extra.
A única maneira de aumentar o número de métodos que permitem a manipulação eficiente de caracteres String é copiar os personagens em sua própria matriz e manipulá-los directamente, caso em que a corda está impondo um passo extra e objetos extras que você pode não need.4. Matrizes de caracteres são mais rápidos para processar directly.5. O acoplamento forte com corda de buffer pode levar ao uso de memória inesperadamente elevado. Quando StringBuf toString () cria uma cadeia, a matriz subjacente corrente mantém a corda, independentemente do tamanho da matriz (isto é, a capacidade do StringBuf).
Por exemplo, um StringBuffer com uma capacidade de 10.000 caracteres pode construir uma seqüência de 10 caracteres. No entanto, essa seqüência de 10 caracteres continua a usar uma matriz de 10.000 char para armazenar os 10 caracteres. Se o StringBuffer agora é reutilizado para criar outra seqüência de 10 caracteres, o StringBuffer primeiro cria um novo 10.000 char-interno de array para construir a string com; em seguida, a nova seqüência também usa essa matriz de 10.000 char para armazenar os 10 caracteres.
Obviamente, este processo pode continuar indefinidamente, utilizando grandes quantidades de memória onde não expected.The vantagens de Cordas pode ser resumido como a facilidade de utilização, suporte à internacionalização, e compatibilidade com interfaces existentes. A maioria dos métodos esperar um objeto String ao invés de uma matriz de char, e objetos String são retornados por vários métodos. A desvantagem de Cordas se resume a inflexibilidade. Com o traba