В чем разница между примитивными и ссылочными типами в Java

«В чем разница между примитивными и ссылочными типами в Java» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Примитивные типы (int, float, boolean и т.д.) хранят значения напрямую в памяти, занимают фиксированный размер и работают быстрее. Они не могут быть null.

Ссылочные типы (объекты, массивы) хранят ссылку на объект в куче. Могут быть null, требуют больше памяти и времени на обработку из-за дополнительных операций (например, сборка мусора).

Пример:

int a = 5;          // Примитив (хранится в стеке)  
String s = "text";  // Ссылочный тип (объект в куче)