В чем разница между объектом и примитивом в Java?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Примитивные типы данных:

  • Хранят само значение данных в памяти.

  • Имеют фиксированный размер в памяти.

  • Не могут быть равны null.

  • Восемь встроенных примитивных типов:

    • byte (целочисленный)
    • short (целочисленный)
    • int (целочисленный, наиболее часто используемый)
    • long (целочисленный)
    • float (с плавающей точкой одинарной точности)
    • double (с плавающей точкой двойной точности, наиболее часто используемый)
    • boolean (логический)
    • char (символьный)

Объекты:

  • Представляют собой экземпляры классов.
  • Хранят ссылки на данные, а не само значение. Данные хранятся в хипе.
  • Имеют переменный размер в памяти (зависит от содержимого объекта).
  • Могут быть равны null, что означает отсутствие ссылки на объект в памяти.
  • Объекты имеют методы и поля (данные).
  • Создаются с помощью ключевого слова new (за исключением строк, созданных литералом).

Сравнение:

Характеристика Примитив Объект
Хранение данных Само значение Ссылка на значение (в хипе)
Размер в памяти Фиксированный Переменный
Возможность null Нет Да
Методы и поля Нет Да
Создание Объявление (например, int x;) С помощью new (явное или неявное)
Передача в методы По значению (копия значения) По ссылке (копия ссылки, объект один)

Пример:

// Примитив: переменная 'a' хранит само значение 10
int a = 10;

// Объект: переменная 'str' хранит ссылку на объект String в хипе
String str = new String("Hello");

// Примитив не может быть null
// int b = null; // Компиляционная ошибка

// Объект может быть null
String nullStr = null;

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее