logo

StringBuffer ve StringBuilder arasındaki fark

Java, bir karakter dizisini temsil etmek için üç sınıf sağlar: String, StringBuffer ve StringBuilder. String sınıfı değişmez bir sınıftır, StringBuffer ve StringBuilder sınıfları ise değiştirilebilir. StringBuffer ve StringBuilder arasında birçok fark vardır. StringBuilder sınıfı JDK 1.5'ten beri tanıtılmaktadır.

StringBuffer ve StringBuilder arasındaki farkların listesi aşağıda verilmiştir:

StringBuffer ve StringBuilder arasındaki fark
HAYIR.StringBufferStringBuilder
1)StringBuffer: senkronize yani iş parçacığı güvenli. Bu, iki iş parçacığının aynı anda StringBuffer yöntemlerini çağıramayacağı anlamına gelir.StringBuilder (şimdiki değeri) senkronize olmayan yani iş parçacığı güvenli değil. Bu, iki iş parçacığının aynı anda StringBuilder yöntemlerini çağırabileceği anlamına gelir.
2)StringBuffer: daha az verimli StringBuilder'dan daha.StringBuilder (şimdiki değeri) daha verimli StringBuffer'dan daha.
3)StringBuffer, Java 1.0'da tanıtıldıStringBuilder Java 1.5'te tanıtıldı

StringBuffer Örneği

BufferTest.java

//StringBuffer sınıfının kullanımını gösterecek Java Programı. public class BufferTest{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer('merhaba'); buffer.append('java'); System.out.println(tampon); } }

Çıktı:

 hellojava 

StringBuilder Örneği

OluşturucuTest.java

css altı çizili metin
 //Java Program to demonstrate the use of StringBuilder class. public class BuilderTest{ public static void main(String[] args){ StringBuilder builder=new StringBuilder('hello'); builder.append('java'); System.out.println(builder); } } 

Çıktı:

 hellojava 

StringBuffer ve StringBuilder'ın Performans Testi

StringBuffer ve StringBuilder sınıflarının performansını kontrol etmek için kodu görelim.

ConcatTest.java

 //Java Program to demonstrate the performance of StringBuffer and StringBuilder classes. public class ConcatTest{ public static void main(String[] args){ long startTime = System.currentTimeMillis(); StringBuffer sb = new StringBuffer(&apos;Java&apos;); for (int i=0; i<10000; i++){ sb.append('tpoint'); } system.out.println('time taken by stringbuffer: ' + (system.currenttimemillis() - starttime) 'ms'); starttime="System.currentTimeMillis();" stringbuilder sb2="new" stringbuilder('java'); for (int i="0;" i<10000; sb2.append('tpoint'); stringbuilder: < pre> <p> <strong>Output:</strong> </p> <pre> Time taken by StringBuffer: 16ms Time taken by StringBuilder: 0ms </pre> <hr></10000;>