Sobes.tech
Junior — Middle

Programlamada temel veri tipleri ile referans tiplerini nasıl ayırt edersiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Примитивные типы данных (например, 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' - объект изменился через другую ссылку

Таким образом, главное отличие — примитивы хранят значения напрямую, а ссылочные типы — адреса на данные в памяти.