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:
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 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.
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"); } }
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!