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:
NEIN. | StringBuffer | StringBuilder |
---|---|---|
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ührt | StringBuilder 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('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;>