String Pool

Merhaba arkadaşlar, bu yazımda String Pool konusunu anlatacağım. String Pool nedir ? Neden gereklidir? Ne için kullanılır? Vb. sorulara cevap vereceğim.

Java’da String 2 türlü tanımlanır:

Bu iki kullanım arasında bellekte tutulma bakımından farklılık vardır. Java da nesneler bilindiği üzerine Heap bellek alanında tutulurlar. String Pool’da Heap bellek alanında bulunur. Şimdi örnek üzerinden konuyu anlamaya çalışalım:


İki adet s1 ve s2 nesnesi oluşturuldu ve ‘Furkan’ değeri atandı. Görüldüğü üzere s1 nesnesi üretildiğinde String Pool da ‘Furkan’ değeri oluşturuldu ve s1 referans oldu. Daha sonradan s2 nesnesi üretildi ve aynı değer atandı. String Pool da değer olduğu için tekrardan değer oluşturulmadı ve s1’in referans olduğu yer s2 ninde referansı oldu.

Şimdi başka bir örnek görelim:

 

S1 nesnesi üretildi ve ‘Furkan’ değeri atandı. Değer String Pool da olmadığı için String Pool da oluşturuldu. Daha sonra s3 nesnesi new keywordu ile oluşturuldu ve s1 ile aynı değere atandı. İlk örnekten farklı olarak new keywordu ile oluşturulduğu için s1’in referans olduğu değer yerine String Pool da yeni değer oluşturuldu.

Yani String Pool, 1 numaradaki gibi aynı değerleri alarak nesne üretildiğinde gereksiz bellekte yer kaplamayı engeller.

Şimdi geniş örneğimize ve çıktımıza bakalım:

Çıktı:

Bu yazımı burada bitiriyorum diğer yazılarımda görüşmek üzere.

Print Friendly, PDF & Email

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.