Unterschied zwischen StringBuffer und StringBuilder

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:

Unterschied zwischen StringBuffer und StringBuilder
Nein.ZeichenfolgenpufferStringBuilder
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ührtStringBuilder wurde in Java 1.5 eingeführt

StringBuffer-Beispiel

BufferTest.java

  1. //Java-Programm zur Demonstration der Verwendung der StringBuffer-Klasse.  
  2. öffentliche Klasse  BufferTest{   
  3.     public static void  main(String[] args){    
  4.         StringBuffer Puffer = neuer  StringBuffer( “Hallo” );  
  5.         Buffer.append( “java” );  
  6.         System.out.println (Puffer);  
  7.     }  
  8. }  

Ausgabe:

hallo java

StringBuilder-Beispiel

BuilderTest.java

  1. //Java-Programm zur Demonstration der Verwendung der StringBuilder-Klasse.  
  2. öffentliche Klasse  BuilderTest{   
  3.     public static void  main(String[] args){    
  4.         StringBuilder builder= new  StringBuilder( “Hallo” );  
  5.         builder.append( “java” );  
  6.         System.out.println (Builder);  
  7.     }  
  8. }  

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.

ConcatTest.java

  1. //Java-Programm zur Demonstration der Leistung der Klassen StringBuffer und StringBuilder.  
  2. öffentliche Klasse  ConcatTest{   
  3.     public static void  main(String[] args){    
  4.         lange  Startzeit = System.aktuelleZeitMillis();  
  5.         StringBuffer sb =  new  StringBuffer( “Java” );  
  6.         für  ( int  i= 0 ; i< 10000 ; i++){  
  7.             sb.append( “Tpoint” );  
  8.         }  
  9.         System.out.println( “Von StringBuffer benötigte Zeit: ”  + (System.currentTimeMillis() – startTime) +  “ms” );  
  10.         startTime = System.aktuelleZeitMillis();  
  11.         StringBuilder sb2 =  new  StringBuilder( “Java” );  
  12.         für  ( int  i= 0 ; i< 10000 ; i++){  
  13.             sb2.append( “Tpoint” );  
  14.         }  
  15.         System.out.println( “Vom StringBuilder benötigte Zeit: ”  + (System.currentTimeMillis() – startTime) +  “ms” );  
  16.     }  
  17. }  

Ausgabe:

Von StringBuffer benötigte Zeit: 16 ms
Von StringBuilder benötigte Zeit: 0 ms

osky