Sobes.tech
Intern

Primitiv və referans növü məlumatlar arasında nə fərq var?

sobes.tech Süni İntellekt

AI-dan cavab

Əsas tiplər birbaşa dəyəri saxlayır, referens tiplər isə obyektə (yaddaş ünvanına) referans (istinad) saxlayır.

Əsas tiplər:

  • Sabit və kiçik yaddaş tutumu var.
  • Dəyər vasitəsilə ötürülür (öz dəyəri kopyalanır).
  • Kiçik hərflə başlayır.
  • Daxildir: byte, short, int, long, float, double, boolean, char.
// Əsas tip nümunəsi
int a = 10;
int b = a; // 10 dəyəri kopyalanır
b = 20;   // Yalnız b dəyişir, a hələ də 10-dur

Referens tiplər:

  • Ob'ektin məzmunundan asılı olaraq müxtəlif yaddaş tutumu var.
  • Referans (obyektin ünvanı) vasitəsilə ötürülür. Ob'ekt üzərində dəyişikliklər, ona istinad edən bütün dəyişənlərə təsir edir.
  • Adətən böyük hərflə başlayır (sinflər).
  • Daxildir: sinflər (String, Object, xüsusi sinflər), interfeyslər, massivlər.
// Referens tip nümunəsi
String str1 = new String("Hello");
String str2 = str1; // "Hello" obyektinə referans kopyalanır
str2 = "World";   // str2 indi yeni "World" obyektinə istinad edir. str1 hələ də "Hello"-ya istinad edir.

// Dəyişdirilə bilən obyektlə başqa nümunə
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(1);
ArrayList<Integer> list2 = list1; // Eyni obyektə referans kopyalanır
list2.add(2); // Obyektə element əlavə edilir, hər iki referans ona istinad edir
// İndi list1 [1, 2] və list2 [1, 2] saxlayır

Qısa müqayisə cədvəli:

Xüsusiyyət Əsas tiplər Referens tiplər
Saxlama Dəyər Obyektə referans
Keçirmə Dəyər vasitəsilə Referans vasitəsilə
Yaddaş ölçüsü Sabit və kiçik Dəyişkən
Başlanğıc ilə Kiçik hərf Adətən böyük hərf
Nullability null ola bilməz null ola bilər

Əsas tiplər müvafiq wrapper siniflərə (məsələn, int üçün Integer) çevrilir ki, onlarla obyekt kimi işləmək mümkün olsun.