Junior — Middle
Dasturlash tilida asosiy ma'lumot turlari va referens ob'ektlarni qanday ajratish mumkin?
sobes.tech AI
AIdan javob
Dasturlash tillarida asosiy ma'lumot turlari (primitivlar) va referens ob'ektlar ma'lumotlarni saqlash va uzatish usuli bo'yicha farq qiladi.
- Asosiy ma'lumot turlari (masalan, Java/Android'da int, float, boolean) stekda saqlanadi va to'g'ridan-to'g'ri qiymatni o'z ichiga oladi. O'zgaruvchi uzatilganda, qiymat o'zi nusxalanadi.
- Referens ob'ektlar (masalan, sinf ob'ektlari) xotirada saqlanadi, va o'zgaruvchida ob'ektga (ko'rsatkichga) havola (referens) bo'ladi. Uzatilganda, faqat havola nusxalanadi, ob'ekt emas.
Misol:
int a = 5;
int b = a; // 5 qiymati nusxalanadi
b = 10;
// a hali ham 5
String s1 = new String("hello");
String s2 = s1; // ob'ektga havola nusxalanadi
s2 = "world";
// s1 hali ham "hello" (Java'da String o'zgarmas)
Shu tarzda, asosiy turlar ma'lumotlarni to'g'ridan-to'g'ri saqlaydi, referens ob'ektlar esa ob'ektga ko'rsatkich orqali saqlanadi.