4 Haziran 2012 Pazartesi

Java'da String ve StringBuffer/StringBuilder arasındaki fark

Java'da String ve StringBuffer/StringBuilder arasındaki en önemli fark : String objesi değiştirilemezken StringBuffer/StringBuilder objelerinin değiştirilebilir olmasıdır.

String objenin içine saklanan değer değiştirilemez. Peki nasıl oluyor da ben istediğim zaman string bir değişkeni değiştirebiliyorum diye sorabilirsiniz. Sizin görmüş olduğunuz nesene aynı nesne değildir. String objesi değişmek için arka planda yeni bir String nesnesi oluşturur. Her değişikilte yeni bir String class'ı oluşuyor. Bu da zamanla performansı kötü yönde etkiliyor.

StringBuffer/StringBuilder objelerini kullanırsanız performan açısından daha iyi sonuçlar elde edersiniz. Çünkü Objenin içinde saklanan değer değiştirilebilir bir değerdir.

StringBuffer ile StringBuilder arasında ki tek fark ise "senkronizasyon"dur.
StringBuffer "synchronized" iken StringBuilder "synchronized" değildir.

Thread kullancaksanız; StringBuffer, kullanmayacaksanız StringBuilder kullanmanız daha verimli olcaktır.

Kaynak: http://www.techtamasha.com/difference-between-string-and-stringbufferstringbuilder-in-java/28

2 yorum:

  1. çok net ve açıklayıcı olmuş teşekkürler...

    YanıtlaSil
  2. Bu konuda gördüğüm en akılda kalıcı açıklama, tebrikler.

    YanıtlaSil