Какой тип данных хранит класс Char в Java?

«Какой тип данных хранит класс Char в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java char — это примитивный тип данных, а не класс. Он хранит один 16-битный символ Unicode в диапазоне от u0000 (0) до uffff (65535) и занимает 2 байта памяти.

Пример объявления и использования:

char letter = 'A';
char unicodeChar = 'u0041'; // Также соответствует 'A'
char newLine = 'n';

System.out.println(letter); // A
System.out.println(unicodeChar); // A

Ключевые особенности:

  • Не является объектом. В отличие от String или класса-обертки Character.
  • Может содержать escape-последовательности: n, t, \, ' и т.д.
  • Может участвовать в арифметических операциях благодаря неявному преобразованию в int (код символа).
    int code = 'A'; // Неявное преобразование char -> int
    System.out.println(code); // 65
    char nextLetter = (char) (code + 1); // Явное преобразование int -> char
    System.out.println(nextLetter); // B