logo

Unterschied zwischen StringBuffer und StringBuilder

Java bietet drei Klassen zur Darstellung einer Zeichenfolge: String, StringBuffer und StringBuilder. Die String-Klasse ist eine unveränderliche Klasse, während die Klassen StringBuffer und StringBuilder veränderbar sind. Es gibt viele Unterschiede zwischen StringBuffer und StringBuilder. Die StringBuilder-Klasse wird seit JDK 1.5 eingeführt.

Nachfolgend finden Sie eine Liste der Unterschiede zwischen StringBuffer und StringBuilder:

Unterschied zwischen StringBuffer und StringBuilder
NEIN.StringBufferStringBuilder
1)StringBuffer ist synchronisiert d.h. threadsicher. Das bedeutet, dass zwei Threads die Methoden von StringBuffer nicht gleichzeitig aufrufen können.StringBuilder ist nicht synchronisiert d.h. nicht threadsicher. Dies bedeutet, dass zwei Threads gleichzeitig die Methoden von StringBuilder aufrufen können.
2)StringBuffer ist weniger effizient als StringBuilder.StringBuilder ist effizienter als StringBuffer.
3)StringBuffer wurde in Java 1.0 eingeführtStringBuilder wurde in Java 1.5 eingeführt

StringBuffer-Beispiel

BufferTest.java

//Java-Programm zur Demonstration der Verwendung der StringBuffer-Klasse. öffentliche Klasse BufferTest{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer('hello'); buffer.append('java'); System.out.println(buffer); } }

Ausgabe:

 hellojava 

StringBuilder-Beispiel

BuilderTest.java

Blasensortierung im Algorithmus
 //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); } } 

Ausgabe:

 hellojava 

Leistungstest von StringBuffer und StringBuilder

Sehen wir uns den Code an, um die Leistung der Klassen StringBuffer und StringBuilder zu überprüfen.

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;>