Java’da ilkel veri tipleri (primitive types) ve referans veri tipleri (reference types) arasında bazı temel farklar vardır. İşte bu farklardan bazıları:
- Tanım ve Bellek Yönetimi: İlkel veri tipleri, bellekte sabit bir boyutta saklanır ve JVM tarafından doğrudan yönetilir. Bunlar, bellekte değerlerini doğrudan tutarlar. Örneğin,
intveri tipi 4 bayt bellek alanı kullanır. Referans veri tipleri ise bellekte nesnelerin adreslerini tutar ve nesnelerin verileri heap bölgesinde saklanır. Referans veri tipleri bellekte daha fazla yer kaplar ve bellekteki bir nesneye işaret ederler. - Null Değer: İlkel veri tipleri null değerini alamazlar. Referans veri tipleri ise null değerini alabilir. Bir referans veri tipi değişkeni, herhangi bir nesneye işaret etmiyorsa null değerini alır.
- Bellek Ayırma ve Garbage Collection: İlkel veri tipleri için bellekte ayrı bir bellek tahsisi veya bellek yönetimi işlemi yapmanıza gerek yoktur. Ancak, referans veri tipleri ile çalışırken, nesneleri bellekte oluşturmalı ve gereksiz nesneleri garbage collector (çöp toplayıcı) tarafından toplanmasını beklemelisiniz.
- Method Parametreleri ve Dönüş Değerleri: İlkel veri tipleri methodlara parametre olarak geçirildiğinde veya methodlardan dönüş değeri olarak kullanıldığında, değerlerin kopyaları kullanılır. Yani, orijinal değerler etkilenmez. Referans veri tipleri ise methodlara referans olarak geçirildiğinde veya dönüş değeri olarak kullanıldığında, referanslar nesnenin bellek adresini temsil eder. Bu nedenle, methodlar üzerinde yapılan değişiklikler orijinal nesneyi etkiler.
- Wrapper Sınıflar: İlkel veri tiplerin her biri için birer wrapper (sarmalayıcı) sınıf vardır. Bu wrapper sınıflar, ilkel veri tiplerini nesne olarak temsil etmenizi sağlar ve ilkel veri tiplerini referans veri tipleri gibi kullanmanıza olanak tanır. Örneğin,
intiçinInteger,floatiçinFloatgibi.
Bu farklar, ilkel ve referans veri tipleri arasındaki temel farkları özetlemektedir. İlkel veri tipleri genellikle basit değerlerin saklanması için kullanılırken, referans veri tipleri daha karmaşık nesnelerin temsil edilmesi ve manipüle edilmesi için kullanılır.

Yorum bırakın