Boxing ve Unboxing Kavramları

Boxing ve Unboxing Kavramları

Boxing ve Unboxing kavramlarından bahsedeceğiz. Tam olarak ne olduğunu anlatmadan bir önceki yazımda bahsettiğim Primitive Type ve Wrapper Type ‘ a ufak bir değinmemiz gerekecek.

Primitive Type

Bir diğer adı ilkel tipler ve değer tiplerdir. Hepimizin bildiği gibi en temel olan byte, int, short, long, char, float ve double gibi değerlere denilmektedir. Ramde stackte tutulmaktadırlar. Herhangi bir metoda parametre olarak gönderildiğinde bir kopyası ile gider ve kopyası üzerinde işlem yapılır.

Wrapper Type

Java da bazen bu Primitive tipleri sarmalamak(Wrapping) zorunda kalırız. Örnek olarak eğer bir koleksiyon(collections) kullanacaksak tanımlaması yapılırken bir nesne ile tanımlanmalıdır. Yani int yerine onu başka bir class içerisinde sarmalayarak kullanmalıyız. Java bizim için bu primitive değerleri sarmalanmış hallerini de hazırlamış. Bunlara da Wrapper Type denilmektedir.

Boxing(Kutulama) : Primitive type bir değeri sarmalayıcı(wrapper class) sınıf içerisine konulması işlemine denir.

Unboxing(Kutudan çıkarma) : Sarmalayıcı(wrapper class) sınıf içerisinden Primitive type değeri geri çıkarma işlemine denir.

public class Main {
Integer wrapper = new Integer(10); // Boxing
int ilkel = wrapper.intValue(); // Unboxing
}

Bu tarz bir kod yazdığınızda IDE bize bu kullanımın deprecated olduğunu söylüyor bunu JAVA güncel versiyonlarıyla kendi içinde çözümlüyor. Bizim bu şekilde kullanmamıza gerek kalmıyor. Direk değerin kendisini verebiliyoruz.

public class Main {
Integer wrapper = 10; // Boxing
int ilkel = wrapper; // Unboxing
}

Codest Blog

Codest Blog yazılım hakkında her konuda bilgi sağlayan bir blog sitesidir. Bilgi paylaştıkça güzeldir felsefesi ile hareket ederek, yazılımcıların en cok karşılaştığı konuları sizlere aktarmayı hedefliyoruz. Keyifli okumalar 🙂