String vs StringBuilder Farkı Nedir ?

İşin açıkçası bu güne kadar StringBuilder sınııfını üniversite ikinci sınıfta Java programlama dili ile kullandım. O günden sonra hep string sınıfını kullandım. Tüm işlemlerimi string ile yapabiliyorum neden 7 harf fazladan yazayım ki dedim. String vs StringBuilder farkı ne olabilir ki dedim ve hiç araştırmadım. Aradaki farkı öğrenince keşke zamanında araştırsaymışım dedim.

String vs StringBuilder Farkı Performansı Etkiliyor

Ben dahil olmak üzere bir çok yazılım geliştiricisi text tipi değişkenlerde string sınıfını kullanıyor. Tabi ki kullandığı programlama dili bu sınıfı destekliyor ise… C gibi ilkel ya da desteklemeyen başka dili kullanan yazılım geliştiricilerine sabır diliyorum.

Konumuza gelecek olursak, sayın yazılım geliştiricileri lütfen her text tipi değişkeni string olarak tanımlamayın. Bu benim de bu güne kadar yapmış olduğum büyük bir hataydı. Bu hatayı yapmaktan kaçının. Yazmış olduğunuz programların büyüklüğü nedir bilemiyorum ancak büyük programlarda bu kaçınmanız size büyük performans artışı sağlayacaktır.

Mutable ve immutable olarak değişkenleri ikiye ayırabiliriz. Türkçe konuşacak olursak değişkenleri değişken ve sabit olarak ikiye ayırabiliriz. İlk duyduğunuzda saçmalama diyeceğiniz cümleyi söylüyorum. String tipi değişkenler sabit değişkenlerdir. Birader sen ne diyor ben string tipinde bir değişken tanımlıyorum ardından bu değişkenin değerini değiştirebiliyorum diyebilirsiniz. Evet, yapabiliyorsunuz en azından yapabildiğinizi sanıyorsunuz.

String değişkeni oluşturdunuz ve ilerleyen satırlarda bu değişkene yeni bir değer atadınız. Evet bu değişkenin değeri değişecektir ancak değişim sıralaması şu şekilde olacaktır:

  • Yeni bir string objesi oluşturulacak,
  • Yeni olan string objesine yeni değer atanacak,
  • Eski string değişkeni bu objeyi point edecektir.

Kısaca değişkenin değerini değiştirmiyor yeni bir değer oluşturup onu gösteriyorsunuz. Halbuki stringbuilderda bildiğiniz int ve ya floatta olduğu gibi değer direk değişmektedir.

Büyük projelerde string vs stringbuilder farkı dolayısı ile performans kaybı yaşayacağınız aşikardır.

KAYNAK

Bir cevap yazın

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