Что такое реализация новой версии Java 9?

Как строки, реализованные в Java 9 под капотом? Каждый символ хранится как один или два байта?

Ответы

Ответ 1

Поскольку большинство применений строк являются латинскими-1 и требуется только один байт, Java-9 String будет обновляться, чтобы быть реализована под капотом в виде байтового массива с полем флага кодирования, чтобы отметить, является ли он байтовым массивом. Если символы не являются латинскими-1 и требуют более одного байта, они будут сохранены в виде массива UTF-16 char (2 байта на char) и флага. См. JEP 254.