String Pool Nedir ?

String, sizin de bildiğiniz gibi Java’da yaygın olarak kullanılan karakter dizisi nesneleridir. İki şekilde String nesnesi oluşturabiliriz. Şöyle ki;

  • çift tırnak kullanarak
  • new anahtar kelimesi kullanarak

Java, bu oluşan Stringleri bir havuzda özel olarak korur.

String Pool Nedir ?


String Pool (String Havuzu), Java Heap Memory’de saklanan bir alandır. Flyweight Tasarım Şablonu örneğidir. String immutable(değişmez) olduğu için ve String intern kavramı uygulanabildiği için Java’da String Pool mümkündür.

Peki, nedir bu String interning ? String Interning, değişmez (immutable) olması gereken her bir farklı String değerinin yalnızca bir kopyasını saklama yöntemidir.

Aşağıdaki örnek ile daha iyi anlayacaksınız.

String Pool, tasarruf sağlar yani boş yere heap de referanslar oluşturmaz. String oluşturmak için çift tırnak kullandığımızda, ilk önce String havuzunda aynı değer ile String’i arar, eğer bulursa referansı döndürür, bulamazsa havuzda yeni bir String oluşturur ve sonra referansı döndürür.

new operatörü kullanılarak, heap alanında yeni bir String nesnesi oluşturmuş oluruz. Havuza yerleştirmek için intern() yöntemini kullanabilir ve havuzda bu String nesnenin içerdiği dizeye bakılır, bulunursa havuzdaki dize döndürülür. Aksi takdirde, bu String nesnesi havuza eklenir ve bu String nesnesine bir referans döndürülür.

Unutmayınız ki; new operatörü her zaman yeni bir referans oluşturur ve ==  ile nesnelerin referanslarının eşitliğini kontrol eder. Bu bilgiler ışığında aşadaki örneğin çıktılarını bilebilirsiniz.

Çıktı

Kaynaklar

Beğenebileceğiniz Diğer Yazılar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir