Intern
İlkel ve referans veri tipleri arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
İlkel veri tipleri doğrudan değeri saklar, referans tipleri ise nesneye (bellekteki adres) referans (bağlantı) tutar.
İlkel tipler:
- Sabit ve küçük bir bellek alanı kaplar.
- Değeri kopyalanarak (değer üzerinden) iletilir.
- Küçük harfle başlar.
- İçerir:
byte,short,int,long,float,double,boolean,char.
// İlkel tip örneği
int a = 10;
int b = a; // 10 değeri kopyalanır
b = 20; // Sadece b değişir, a 10 kalır
Referans tipleri:
- Nesnenin içeriğine bağlı olarak farklı bellek alanları kullanır.
- Referans (nesne adresi) ile iletilir. Nesne üzerinde yapılan değişiklikler, ona referans eden tüm değişkenleri etkiler.
- Genellikle büyük harfle başlar (sınıflar).
- İçerir: sınıflar (
String,Object, özel sınıflar), arayüzler, diziler.
// Referans tipi örneği
String str1 = new String("Hello");
String str2 = str1; // "Hello" nesnesine referans kopyalanır
str2 = "World"; // str2 artık yeni bir "World" nesnesine referans verir. str1 hâlâ "Hello"'ya referans eder.
// Değiştirilebilir nesne ile başka bir örnek
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(1);
ArrayList<Integer> list2 = list1; // Aynı nesneye referans kopyalanır
list2.add(2); // Nesneye eleman eklenir, her iki referans da güncellenmiş nesneye işaret eder
// Artık list1 [1, 2] ve list2 [1, 2] içerir
Hızlı karşılaştırma tablosu:
| Özellik | İlkel tipler | Referans tipleri |
|---|---|---|
| Depolama | Değer | Nesneye referans |
| Aktarım | Değere göre | Referansa göre |
| Bellek boyutu | Sabit ve küçük | Değişken |
| Başlangıç harfi | Küçük harf | Genellikle büyük harf |
| Null olma durumu | null olamaz |
null olabilir |
İlkel tipler, bunların nesne olarak kullanılabilmesi için sarmal sınıflarına (wrapper classes) çevrilir (örneğin, int Integer'a).