Koska String esineet ovat muuttumattomia, substring toiminta doesnt tarvitse kopioida koko taustalla merkkijono. Sen sijaan, osamerkkijonon voi käyttää samaa char array kuin alkuperäinen merkkijono ja yksinkertaisesti viitata eri alkupiste ja päätepiste on char array. Tämä tarkoittaa, että osajono toiminta on tehokasta, on sekä nopea ja säilyttämiseksi muistia; ylimääräinen esine on vain kääre samalla taustalla char array eri osoittimia tuohon array.3. Strings toteutetaan JDK sisäisenä char array indeksi siirtymät (oikeastaan alku offset ja merkkimäärä).
Tämä perusrakenne on erittäin todennäköisesti muuttaa mitään versiota Java.4. Jouset vahvaa tukea kansainvälistymiseen. Se veisi suuri ponnistus toistaa kansainvälistymisen tukeminen vaihtoehtoisen class.5. Läheinen suhde StringBuffers avulla Strings viitata samaan char array jota StringBuffer. Tämä on kaksiteräinen miekka. Tyypillisissä käytäntö, kun käytät StringBuffer manipuloida ja liittää merkit ja tietotyypit, ja sitten muuntaa lopullinen tulos String, tämä toimii hienosti.
StringBuffer tarjoaa tehokkaita mekanismeja kasvaa, lisäämällä, lisäämällä, muuttamalla, ja muita String manipulointia. Tuloksena String sitten tehokkaasti viittaa sama char array ilman ylimääräisiä luonnetta kopiointia. Tämä on erittäin nopea ja vähentää esineitä käytetään vähintään välttämällä väli esineitä. Kuitenkin, jos StringBuffer kohde on sittemmin muuttunut, char array, että StringBuffer kopioidaan uuteen char ryhmän, joka on nyt viittaa StringBuffer. String esine säilyttää viittaus aiemmin jaetun char array.
Tämä tarkoittaa, että kopiointi yläpuolella voi tapahtua odottamattomia pistettä hakemuksessa. Sen sijaan, että kopioinnin esiintyvät toString () menetelmä puhelu, kuten voisi olettaa, mahdolliset myöhemmät muuttaminen StringBuffer aiheuttaa uusi char array luoda ja array kopio suoritettava. Jotta kopiointia yläpuolella tapahtuvat ennakoitavissa kertaa, voit nimenomaisesti suorittaa joitakin m