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

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

Ответ

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

Ссылочные типы (String, массивы, объекты классов) хранят ссылку на объект в куче (heap), а сам объект может быть сложным и занимать больше памяти.

Пример:

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

Ключевые отличия:

  • Примитивы быстрее, но ограничены в функциональности.
  • Ссылочные типы поддерживают null, наследование и методы.
  • При копировании примитивов копируется значение, а ссылочных типов — только ссылка.