Выбор ответа Senior String и пул строк обновлено
Как String хранится в памяти
Вопрос
Как хранится содержимое String в Java 21?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В byte[] с флагом: Latin-1 по байту на символ, иначе UTF-16. С Java 9 (JEP 254, Compact Strings) у String поле byte[] value и поле coder.
Варианты ответа
- В
byte[]с флагом: Latin-1 по байту на символ, иначе UTF-16правильный ответ - В
char[], по два байта на любой символ, как было всегда - В
byte[]в кодировке UTF-8 с переменной длиной символа - В
int[]кодовых точек, чтобы эмодзи занимали один элемент
Разбор
С Java 9 (JEP 254, Compact Strings) у String поле byte[] value и поле coder. Если все символы помещаются в Latin-1, хранится по байту на символ, иначе UTF-16 по два байта. До Java 9 был char[]. UTF-8 внутри не используется: доступ по индексу стал бы O(n).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.