Java bietet drei Klassen zur Darstellung einer Zeichenfolge: String, StringBuffer und StringBuilder. Die Klasse String 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.
Eine Liste der Unterschiede zwischen StringBuffer und StringBuilder ist unten angegeben:
Nein. | Zeichenfolgenpuffer | StringBuilder |
---|---|---|
1) | StringBuffer ist synchronisiert , dh threadsicher. Dies bedeutet, dass zwei Threads die Methoden von StringBuffer nicht gleichzeitig aufrufen können. | StringBuilder ist nicht synchronisiert , dh nicht Thread-sicher. Dies bedeutet, dass zwei Threads die Methoden von StringBuilder gleichzeitig 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
- //Java-Programm zur Demonstration der Verwendung der StringBuffer-Klasse.
- öffentliche Klasse BufferTest{
- public static void main(String[] args){
- StringBuffer Puffer = neuer StringBuffer( “Hallo” );
- Buffer.append( “java” );
- System.out.println (Puffer);
- }
- }
Ausgabe:
hallo java
StringBuilder-Beispiel
- //Java-Programm zur Demonstration der Verwendung der StringBuilder-Klasse.
- öffentliche Klasse BuilderTest{
- public static void main(String[] args){
- StringBuilder builder= new StringBuilder( “Hallo” );
- builder.append( “java” );
- System.out.println (Builder);
- }
- }
Ausgabe:
hallo java
Leistungstest von StringBuffer und StringBuilder
Sehen wir uns den Code an, um die Leistung der Klassen StringBuffer und StringBuilder zu überprüfen.
- //Java-Programm zur Demonstration der Leistung der Klassen StringBuffer und StringBuilder.
- öffentliche Klasse ConcatTest{
- public static void main(String[] args){
- lange Startzeit = System.aktuelleZeitMillis();
- StringBuffer sb = new StringBuffer( “Java” );
- für ( int i= 0 ; i< 10000 ; i++){
- sb.append( “Tpoint” );
- }
- System.out.println( “Von StringBuffer benötigte Zeit: ” + (System.currentTimeMillis() – startTime) + “ms” );
- startTime = System.aktuelleZeitMillis();
- StringBuilder sb2 = new StringBuilder( “Java” );
- für ( int i= 0 ; i< 10000 ; i++){
- sb2.append( “Tpoint” );
- }
- System.out.println( “Vom StringBuilder benötigte Zeit: ” + (System.currentTimeMillis() – startTime) + “ms” );
- }
- }
Ausgabe:
Von StringBuffer benötigte Zeit: 16 ms Von StringBuilder benötigte Zeit: 0 ms