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:
HAYIR. | StringBuffer | StringBuilder |
---|---|---|
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('Java'); 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;>
10000;>