Heim  >  Artikel  >  Java  >  Die Verbindung und der Unterschied zwischen String und StringBuffer in Java

Die Verbindung und der Unterschied zwischen String und StringBuffer in Java

Y2J
Y2JOriginal
2017-04-27 13:14:001612Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen und detaillierte Beispiele zum Unterschied zwischen String und StringBuffer in Java vorgestellt. Ein kleines Beispiel zum Testen des Unterschieds in der Zeit- und Raumnutzung zwischen String und StringBuffer

Detaillierte Beispiele für den Unterschied zwischen String und StringBuffer in Java

String:

Das ist es ein Objekt, kein primitiver Typ.

Es ist ein unveränderliches Objekt. Sobald es erstellt wurde, kann sein Wert nicht geändert werden.
Änderungen am vorhandenen String-Objekt bestehen darin, ein neues Objekt zu erstellen und dann den neuen Wert darin zu speichern .
String ist eine letzte Klasse, das heißt, sie kann nicht vererbt werden

StringBuffer:

Es ist ein veränderliches Objekt. Wenn es geändert wird, wird das Objekt nicht wie String neu erstellt

Es kann nur über den Konstruktor erstellt werden,
StringBuffer sb = new StringBuffer();
Nach dem Objekt Wenn es erstellt wird, wird es im Speicher reserviert und zunächst über seine Append-Methode einen Wert gespeichert:


String-Objekt ist ein unveränderliches Objekt. Jedes Mal, wenn Sting ausgeführt wird, wird ein neues Objekt neu erstellt, um den neuen Wert zu speichern.

Nachdem das StringBuffer-Objekt instanziiert wurde, ist dies nur eine Objektoperation.


Ich habe hier ein kleines Beispiel geschrieben, um den Unterschied in der Zeit- und Raumnutzung zwischen String und StringBuffer zu testen.



Testergebnisse:

public class Test {  
  public static void main(String args[]) {  
    String str = "abc";  
    StringBuffer sb = new StringBuffer("abc");  
    Runtime runtime = Runtime.getRuntime();  
    long start = System.currentTimeMillis();  
    long startFreememory = runtime.freeMemory();  
    for (int i = 0; i < 10000; i++) {  
      str += i;  
      //测试StringBuffer时候把注释打开  
      //sb.append(i);  
    }  
    long endFreememory = runtime.freeMemory();  
    long end = System.currentTimeMillis();  
    System.out.println("操作耗时:" + (end - start) + "ms," + "内存消耗:"  
        + (startFreememory - endFreememory)/1024 + "KB");  
  }  
}
Verwenden Sie String, um 10.000 Mal einen String zu einem String hinzuzufügen

Betriebszeit: 1872 ms, Speicherverbrauch: 1301 KB

Verwenden Sie StringBuffer, um 10.000 Mal eine Zeichenfolge zu einer Zeichenfolge hinzuzufügen

Betriebszeit: 15 ms, Speicherverbrauch: 162 KB

Das obige ist der detaillierte Inhalt vonDie Verbindung und der Unterschied zwischen String und StringBuffer in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn