Seit Java 9 optimiert die JVM Strings mithilfe einer neuen Funktion namensCompactStrings. Zeichenfolgen können alsbyte[]-Arrays anstelle vonchar[]arraysdargestellt werden. Wir könnenUTF-16oderLatin-1verwenden, um ein oder zwei Bytes pro Zeichen zu generieren. Wenn die JVM erkennt, dass eine Zeichenfolge nurISO-8859-1/Latin-1Zeichen enthält, verwendet die Zeichenfolge intern ein Byte pro Zeichen.
kann angeben, dass beim Erstellen der Zeichenfolge überprüft wird, ob sie eine kompakte Zeichenfolge enthält. Diese Funktion ist standardmäßig aktiviert und mit-XX:-CompactStringsdeaktiviert. Es wird nicht auf diechar[]-Implementierung zurückgegriffen und alle Zeichenfolgen alsUTF-16 gespeichert.
// In Java 8 public class String { private final char[] value; // Stores characters in the string --------- } // In Java 9 public class String { private final byte[] value; // Stores characters in the string private final byte coder; // a flag whether to use 1 byte per character or 2 bytes per characters for this string --------- }
Das obige ist der detaillierte Inhalt vonWas ist eine kompakte Zeichenfolge in Java 9?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!