Использует ли Java однобайтовый набор ASCII-кодов для представления символов?
Я только начинаю с Java и пытаюсь понять основные понятия. Мне был задан вопрос: "Использует ли Java однобайтовый код ASCII, заданный для представления символов?"
Я знаю, что Java использует Unicode, который включает в себя ASCII, но является ли ASCII одним байтом?
1 ответ
Решение
ASCII - это 7-битное представление, так что да, каждый символ ASCII может уместиться в byte
,
Тем не менее, Java char
16 бит. Это кодовая единица UTF-16. Так что если у вас есть char
массив из 100 символов, который потребует 200 байтов (плюс служебные данные объекта), даже если каждый символ является только ASCII. Из раздела 3.1 JLS:
Язык программирования Java представляет текст в последовательностях 16-битных кодовых единиц, используя кодировку UTF-16.