logo

Verschil tussen StringBuffer en StringBuilder

Java biedt drie klassen om een ​​reeks tekens weer te geven: String, StringBuffer en StringBuilder. De klasse String is een onveranderlijke klasse, terwijl de klassen StringBuffer en StringBuilder veranderlijk zijn. Er zijn veel verschillen tussen StringBuffer en StringBuilder. De klasse StringBuilder is geïntroduceerd sinds JDK 1.5.

Hieronder vindt u een lijst met verschillen tussen StringBuffer en StringBuilder:

Verschil tussen StringBuffer en StringBuilder
Nee.StringBufferStringBuilder
1)StringBuffer is gesynchroniseerd d.w.z. draadveilig. Het betekent dat twee threads de methoden van StringBuffer niet tegelijkertijd kunnen aanroepen.StringBuilder is niet-gesynchroniseerd d.w.z. niet draadveilig. Het betekent dat twee threads tegelijkertijd de methoden van StringBuilder kunnen aanroepen.
2)StringBuffer is minder efficient dan StringBuilder.StringBuilder is efficiënter dan StringBuffer.
3)StringBuffer werd geïntroduceerd in Java 1.0StringBuilder werd geïntroduceerd in Java 1.5

StringBuffer-voorbeeld

BufferTest.java

//Java-programma om het gebruik van de klasse StringBuffer te demonstreren. public class BufferTest{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer('hallo'); buffer.append('java'); System.out.println(buffer); } }

Uitgang:

 hellojava 

StringBuilder-voorbeeld

BuilderTest.java

wat is een speciaal karakter
 //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); } } 

Uitgang:

 hellojava 

Prestatietest van StringBuffer en StringBuilder

Laten we de code bekijken om de prestaties van de klassen StringBuffer en StringBuilder te controleren.

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