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.