Categories: Allgemein

Unterschied zwischen String und StringBuffer

Es gibt viele Unterschiede zwischen String und StringBuffer. Eine Liste der Unterschiede zwischen String und StringBuffer finden Sie unten:

Nein.SchnurZeichenfolgenpuffer
1)Die String-Klasse ist unveränderlich.Die StringBuffer-Klasse ist änderbar.
2)String ist langsam und verbraucht mehr Speicher, wenn wir zu viele Strings verketten, da jedes Mal eine neue Instanz erstellt wird.StringBuffer ist schnell und verbraucht weniger Speicher, wenn wir t-Strings verketten.
3)Die String-Klasse überschreibt die equals()-Methode der Object-Klasse. So können Sie den Inhalt zweier Strings mit der Methode equals () vergleichen.Die Klasse StringBuffer überschreibt nicht die Methode equals() der Klasse Object.
4)Die String-Klasse ist langsamer, während eine Verkettungsoperation ausgeführt wird.Die StringBuffer-Klasse ist beim Ausführen von Verkettungsvorgängen schneller.
5)Die String-Klasse verwendet den String-Konstantenpool.StringBuffer verwendet Heap-Speicher

Leistungstest von String und StringBuffer

ConcatTest.java

  1. öffentliche Klasse  ConcatTest{   
  2.     öffentlicher statischer  String concatWithString() {   
  3.         Zeichenfolge t =  “Java” ;  
  4.         für  ( int  i= 0 ; i< 10000 ; i++){  
  5.             t = t +  “TPunkt” ;  
  6.         }  
  7.         gib  t zurück;  
  8.     }  
  9.     öffentlicher statischer  String concatWithStringBuffer(){   
  10.         StringBuffer sb =  new  StringBuffer( “Java” );  
  11.         für  ( int  i= 0 ; i< 10000 ; i++){  
  12.             sb.append( “Tpoint” );  
  13.         }  
  14.         return  sb.toString();  
  15.     }  
  16.     public static void  main(String[] args){    
  17.         lange  Startzeit = System.aktuelleZeitMillis();  
  18.         concatWithString();  
  19.         System.out.println( “Zeit, die durch Concating mit String benötigt wird: ” +(System.currentTimeMillis()-startTime)+ “ms” );  
  20.         startTime = System.aktuelleZeitMillis();  
  21.         concatWithStringBuffer();  
  22.         System.out.println( “Zeit, die von Concating mit StringBuffer benötigt wird: ” +(System.currentTimeMillis()-startTime)+ “ms” );  
  23.     }  
  24. }  

Ausgabe:

Dauer der Verkettung mit String: 578 ms
Dauer der Verkettung mit StringBuffer: 0 ms

Der obige Code berechnet die zum Verketten einer Zeichenfolge erforderliche Zeit mithilfe der String-Klasse und der StringBuffer-Klasse.

String- und StringBuffer-HashCode-Test

Wie wir in dem unten angegebenen Programm sehen können, gibt String einen neuen Hashcode zurück, während die Verkettung durchgeführt wird, aber die StringBuffer-Klasse gibt denselben Hashcode zurück.

InstanceTest.java

  1. öffentliche Klasse  InstanceTest{   
  2.     public static void  main(String args[]){    
  3.         System.out.println( “Hashcode-Test von String:” );  
  4.         Zeichenkette str= “java” ;  
  5.         System.out.println (str.hashCode());  
  6.         str=str+ “tpoint” ;  
  7.         System.out.println (str.hashCode());  
  8.    
  9.         System.out.println( “Hashcode-Test von StringBuffer:” );  
  10.         StringBuffer sb= new  StringBuffer( “java” );  
  11.         System.out.println (sb.hashCode());  
  12.         sb.append( “tpoint” );  
  13.         System.out.println (sb.hashCode());  
  14.     }  
  15. }  

Ausgabe:

Hashcode-Test von String:
3254818
229541438
Hashcode-Test von StringBuffer:
118352462
118352462
osky

Recent Posts

Freeway vs. Highway: Ein detaillierter Blick auf die Feinen Unterschiede im Straßenverkehr

Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…

1 Jahr ago

Burrito vs. Enchilada: Die Feinen Unterschiede Zwischen Zwei Klassikern der Mexikanischen Küche

Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…

1 Jahr ago

Ein umfassender Vergleich zwischen Replikation und Transkription

In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…

1 Jahr ago

Verständnis des Unterschieds zwischen Osmose und Diffusion

Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…

1 Jahr ago

Der entscheidende Unterschied zwischen 4G und 5G

Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…

1 Jahr ago

Der entscheidende Unterschied zwischen JPG und PNG

Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…

1 Jahr ago