Kompakte Strings nun in Java 9 (JEP 254)
Wenn ein String nur aus Latin-1 Buchstaben besteht, dann kann die Zeichenfolge aus einem byte- statt einem char-Feld bestehen. Diese Änderung wurde in Java 9 nun umgesetzt: . Gerade bei IDs lässt sich so 1/2 vom Speicher sparen. Und da Strings immutable sind, muss man nicht konvertieren.
Teurer wird es beim „Mischen“ wie:
String /*intern char[]*/ s = "λφα";
String /*intern char[]*/ t = " " /*intern byte[]*/
+
s /*intern char[]*/;
Intern wird hier eine inflate()-Methoden aufgerufen:
If the coder is "isLatin1", this inflates the internal 8-bit storage to 16-bit pair storage.