Back to questions
Иннотех
Junior — Middle
85
Как отличить примитивные типы данных от ссылочных типов в программировании?
Companies where asked
Answer from AI
sobes.tech AI
Примитивные типы данных (например, int, float, boolean, char в Java или number, boolean, string в JavaScript) хранят непосредственно значения и обычно имеют фиксированный размер. При присваивании или передаче примитивных типов копируется само значение.
Ссылочные типы (например, объекты, массивы, классы) хранят ссылку (указатель) на область памяти, где находятся данные. При присваивании или передаче ссылочного типа копируется ссылка, а не сами данные, поэтому изменения через одну ссылку отражаются на всех остальных.
Пример на JavaScript:
let a = 5; // примитив
let b = a; // копируется значение
b = 10;
console.log(a); // 5 - оригинал не изменился
let obj1 = {name: 'Alice'}; // ссылочный тип
let obj2 = obj1; // копируется ссылка
obj2.name = 'Bob';
console.log(obj1.name); // 'Bob' - объект изменился через другую ссылку
Таким образом, главное отличие — примитивы хранят значения напрямую, а ссылочные типы — адреса на данные в памяти.