Foregående punkt betyder, at al adgang skal være gennem det begrænsede sæt af aktuelt tilgængelige String metoder, pålægge ekstra overhead.3. Den eneste måde at øge antallet af metoder tillader en effektiv manipulation af String tegn er at kopiere tegnene i din egen array og manipulere dem direkte, i hvilket tilfælde String er indførelse et ekstra skridt og ekstra objekter, som du måske ikke need.4. Char arrays er hurtigere at behandle directly.5. Den tætte kobling med String buffer kan føre til forbrug uventet høj hukommelse.
Når StringBuffer toString () skaber en streng, den aktuelle underliggende matrix holder strengen, uanset størrelsen af array (dvs. kapacitet StringBuffer). For eksempel kan en StringBuffer med en kapacitet på 10.000 tegn opbygge en streng af 10 tegn. Imidlertid fortsætter, at 10-tegn Streng til at bruge en 10.000-char array til at gemme 10 tegn. Hvis StringBuffer nu genanvendes til at skabe en anden streng 10-karakter, StringBuffer først skaber en ny intern 10.000-char array til at bygge strengen med; derefter den nye String bruger også, at 10.000-char array til at gemme 10 tegn.
Naturligvis kan denne proces fortsætte i det uendelige, ved hjælp af store mængder hukommelse, hvor ikke expected.The fordele ved Strings kan opsummeres som brugervenlighed, internationalisering støtte, og kompatibilitet med eksisterende grænseflader. De fleste metoder forventer en String objekt i stedet for en char array, og String objekter er returneret af mange metoder. Ulempen ved Strings koges ned til manglende fleksibilitet.
Med ekstra arbejde, kan de fleste ting, du kan gøre med String objekter gøres hurtigere og med mindre mellemliggende objekt-skabelse overliggende ved at bruge dit eget sæt af char array manipulation metoder.