Java’da Boxing Ve Unboxing (İlkel Tipleri Referans Tiplere Çevirme)

Java’da boxing ve unboxing, ilkel (primitive) tiplerin referans (wrapper) tiplerine ve referans tiplerin ilkel tiplere dönüştürülmesini sağlayan otomatik dönüşüm işlemleridir. Bu işlemler sayesinde, ilkel ve referans tipler arasında geçiş yapmak kolaylaşır.

Boxing, ilkel bir değeri referans bir nesneye dönüştürme işlemidir. İlkel tiplerin referans tipleri ile eşleşen wrapper sınıfları vardır. Örneğin, int için Integer, float için Float gibi. Boxing işlemi otomatik olarak gerçekleşir. Aşağıda bir örnek verelim:

int primitive = 42;
Integer reference = primitive;  // Boxing: primitive -> reference

Bu örnekte, ilkel int tipindeki “primitive” değişkeni otomatik olarak Integer referans tipine dönüştürülerek “reference” değişkenine atanır.

Unboxing ise referans bir nesneyi ilkel bir değere dönüştürme işlemidir. Bu işlem de otomatik olarak gerçekleşir. Örneğin:

Integer reference = Integer.valueOf(42);
int primitive = reference; // Unboxing: reference -> primitive

Bu örnekte, Integer referans tipindeki “reference” değişkeni otomatik olarak ilkel int tipine dönüştürülerek “primitive” değişkenine atanır.

Boxing ve unboxing, genellikle generic koleksiyonlar (List, Set, Map vb.) veya metodlarda ilkel tipleri kullanmak yerine referans tiplerini kullanmak istediğimiz durumlarda kullanılır. Örneğin, bir List koleksiyonuna ilkel int değerleri eklemek yerine, Integer referans tiplerini ekleyebiliriz:

List<Integer> numbers = new ArrayList<>();
numbers.add(10); // Boxing: int -> Integer

Bu sayede, ilkel int değerlerini referans tipleri olarak kullanarak koleksiyon işlemlerini gerçekleştirebiliriz.

Boxing ve unboxing işlemleri, dilin kolaylığı ve esnekliği açısından önemlidir, ancak gereksiz yere kullanıldığında performans etkisi olabilir. Bu nedenle, performans kritik kod bölümlerinde dikkatli bir şekilde kullanılması önerilir.


Bu yazı

tarihinde

tarafından oluşturulmuştur.


Yorumlar

Yorum bırakın