Примитивные типы напрямую хранят значение, а ссылочные — ссылку (адрес в памяти) на объект, который содержит значение.
Примитивные типы:
byte, short, int, long, float, double, boolean, char.java
Ссылочные типы:
String, Object, пользовательские классы), интерфейсы, массивы.java
Краткая таблица-сравнение:
| Свойство | Примитивные типы | Ссылочные типы |
|---|---|---|
| Хранение | Значение | Ссылка на объект |
| Передача | По значению | По ссылке |
| Размер памяти | Фиксированный | Переменный |
| Начинается с | Маленькой буквы | Обычно с большой буквы |
| Nullability | Не могут быть null | Могут быть null |
Примитивные типы оборачиваются в соответствующие классы-оболочки (wrapper classes) для работы с ними как с объектами (например, int в Integer).