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
çok net ve açıklayıcı olmuş teşekkürler...
YanıtlaSilBu konuda gördüğüm en akılda kalıcı açıklama, tebrikler.
YanıtlaSil