Использует ли 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.

Другие вопросы по тегам