Wie sind Strings in Java 9 unter der Haube implementiert? Wird jedes Zeichen als ein oder zwei Bytes gespeichert?Was ist die neue String-Implementierung von Java 9?
18
A
Antwort
22
Da die meisten Verwendungen von Strings Latin-1 sind und nur ein Byte benötigen, wird Java-9s String aktualisiert, um als Byte-Array mit einem Codierungs-Flag-Feld unter der Haube implementiert zu werden, um festzustellen, ob es sich um ein Byte-Array handelt. Wenn die Zeichen nicht Latin-1 sind und mehr als ein Byte benötigen, werden sie als UTF-16-Zeichenfeld (2 Bytes pro Zeichen) und das Flag gespeichert. Siehe JEP 254.
Verwandte Themen
- 1. Neue Schlüsselwörter in Java 9
- 2. Was ist die neue phpMyID?
- 3. Was ist die Seriennummer in Java?
- 4. Neue zusätzliche Felder in java.lang.Thread, was ist die Idee?
- 5. Was ist der Umfang von $ 1 bis $ 9 in Perl?
- 6. was ist falsch mit dieser Aussage (Anzahl von 0-9)
- 7. Wie erstellt man 9 Patch in Photoshop? Was ist die 9.png-Codierung?
- 8. Was ist "neue Klassenname() {Variablen}" in C#?
- 9. Was ist die neue akzeptierte Methode, neue Drools-Regeln in Drools 6 programmatisch zu erstellen?
- 10. Android 9 Patch-Tool: Was ist das neue Layout-Grenzen-Feature?
- 11. Was ist die maximale Vererbungsebene in Java?
- 12. Was ist die neue Größe der fb Registerkarte?
- 13. Azman Veraltet? Was ist die neue Alternative zu Azman?
- 14. Was ist der Unterschied zwischen String-Initialisierungen durch neue String() und neue String ("") in Java?
- 15. Java: Was ist "for (;;)"
- 16. Was ist die Nummer von Pythons Zip (*)?
- 17. Was ist die Eclipse-Java-Deklarationsverknüpfung?
- 18. Was ist die beste Java-Objektdatenbank?
- 19. Was ist die Objektklasse in Java?
- 20. Was ist die beste OpenGL-Java-Bindung?
- 21. Was ist die Annotationsverarbeitung in Java?
- 22. Was ist die Zukunft für Java 3D?
- 23. Was genau ist Java?
- 24. Was dieser Scala 'neue' ist Syntax
- 25. Java: neue Instanz von Bytecode
- 26. Was ist die Hauptverwendung von Java NIO Buffer-Klassen?
- 27. Was ist die Kotlin-Entsprechung von Java Stream.collect?
- 28. Was ist die Notwendigkeit von Void-Klasse in Java
- 29. Was ist die äquivalente C# -Version von Java Webdriver @Findby?
- 30. Was ist die Verwendung von "System.out :: println" in Java 8
Da Java 9 noch nicht veröffentlicht wurde, ist dieses Verhalten offiziell abgeschlossen? –
@DanielPryden - Gültiger Punkt. Spät im Entwicklungszyklus für Java 9 ist es jedoch * unwahrscheinlich *, dass sie diese Änderung umkehren werden. –
@DanielPryden (Java 9 Entwickler hier) Ich stimme mit Stephen C. Die kompakte Saiten arbeiten ist integriert, und es wurde gut getestet und Benchmarked. Es kommt nicht raus. –