Какие типы данных существуют в Java?

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

Ответ

В Java типы данных делятся на две основные категории: примитивные (хранят значение) и ссылочные (хранят адрес объекта).

Примитивные типы (8 видов)

  • Целые числа: byte (8 бит), short (16 бит), int (32 бита), long (64 бита).
  • Числа с плавающей точкой: float (32 бита), double (64 бита).
  • Символьный: char (16 бит, Unicode).
  • Логический: boolean (значение true или false).

Ссылочные типы

  • Классы (например, String, Integer, пользовательские классы).
  • Интерфейсы.
  • Массивы.

Ключевое отличие: Примитивные переменные хранят фактическое значение, а ссылочные — адрес объекта в памяти (heap). При присваивании примитивов копируется значение, а при присваивании ссылок — копируется адрес (обе переменные начинают ссылаться на один объект).

Пример:

int primitiveNum = 42; // Значение 42 хранится прямо в переменной
String referenceStr = "Hello"; // Переменная хранит ссылку на объект String
int[] numbers = {1, 2, 3}; // Ссылочный тип (массив)