Javas interne String-Darstellung: Modifiziertes UTF-8 oder UTF-16?
Bei der Untersuchung der internen Darstellung von Strings in Java treten widersprüchliche Informationen auf entsteht. Einige Quellen behaupten, dass Java das modifizierte UTF-8 verwendet, während andere behaupten, dass es UTF-16 verwendet. Um diese Diskrepanz zu klären, gehen wir näher auf die Details ein.
Laut der Java-Dokumentation von Oracle stützt sich die Java-Plattform stark auf den Unicode-Zeichensatz. Folglich bedeutet der primitive char-Datentyp eine vorzeichenlose 16-Bit-Ganzzahl. Diese Ganzzahl kann einen Unicode-Codepunkt innerhalb eines bestimmten Bereichs oder die Codeeinheiten von UTF-16 darstellen. Entscheidend ist, dass Zeichenfolgen wie Zeichenfolgen, Zeichenarrays und Implementierungen der CharSequence-Schnittstelle alle UTF-16-Sequenzen in Java sind.
Es ist jedoch wichtig zu beachten, dass JVM-Implementierungen komprimierte Zeichenfolgen verwenden können. Wenn -XX: UseCompressedStrings (eine Standardeinstellung in bestimmten Java 6-Updates) aktiviert ist, können Zeichenfolgen, die keine UTF-16-Codierung erfordern, in einem 8-Bit-Format gespeichert werden, nämlich ISO-8859-1.
Bezüglich der String-Serialisierung in Java ist UTF-8 die Standardkodierung. Wenn Zeichenfolgen serialisiert werden, verwenden sie daher UTF-8.
Schließlich stellt Java ein Zeichen mit zwei Bytes dar, was Codepunkte bis zu 65.535 ermöglicht. Codepunkte über dieser Grenze belegen zwei Zeichen, was zu einem Verbrauch von vier Bytes führt.
Das obige ist der detaillierte Inhalt vonWie speichert Java Strings intern: Modifiziertes UTF-8 oder UTF-16?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!