Heim >Java >javaLernprogramm >Differenzanalyse zwischen java_String und StringBuffer
Die JAVA-Plattform bietet zwei Klassen: String und StringBuffer, die Zeichenfolgen speichern und verarbeiten können, also Zeichendaten, die mehrere Zeichen enthalten. Die String-Klasse stellt numerisch unveränderliche Strings bereit.
Die von dieser StringBuffer-Klasse bereitgestellte Zeichenfolge wird geändert. Sie können StringBuffer verwenden, wenn Sie wissen, dass sich die Zeichendaten ändern werden. Normalerweise verwenden Sie StringBuffers, um Zeichendaten dynamisch zu erstellen.
Es gibt drei Klassen in Java, die für Zeichenoperationen verantwortlich sind.
1.Character arbeitet mit einem einzelnen Zeichen und
2.String arbeitet mit einer Zeichenfolge. Unveränderliche Klassen.
3.StringBuffer arbeitet auch mit einer Zeichenfolge, es handelt sich jedoch um eine Variablenklasse.
String:
ist ein Objekt, kein primitiver Typ.
ist ein unveränderliches Objekt. Sobald es erstellt wurde, kann sein Wert nicht geändert werden.
Änderungen an vorhandenen String-Objekten sind alle neu Erstellen Sie ein neues Objekt und speichern Sie den neuen Wert darin.
String ist eine endgültige Klasse, das heißt, sie kann nicht vererbt werden.
StringBuffer:
ist ein veränderbares Objekt Objekt wird nicht wie String neu erstellt
Es kann nur über den Konstruktor erstellt werden,
StringBuffer sb = new StringBuffer();
Hinweis: Es kann nicht über das Wertsymbol
sb bezahlt werden = "Willkommen hier!";//Nachdem das Fehlerobjekt erstellt wurde, wird Speicherplatz im Speicher zugewiesen und zunächst ein Nullwert gespeichert. Beim Bezahlen des Werts an StringBuffer
können Sie dessen Anhang übergeben Methode.
sb.append("hello");
Der Code lautet wie folgt:
public static void main(String[] args) { String a=""; long begin=System.currentTimeMillis(); for (int i = 0; i <10000; i++) { a+=i; } long end=System.currentTimeMillis(); System.out.println("String运行时间:"+(end-begin)); System.out.println("-----------------"); StringBuffer b=new StringBuffer(); long begin2=System.currentTimeMillis(); for (int i = 0; i <10000; i++) { b.append(i); } long end2=System.currentTimeMillis(); System.out.println("StringBuffer运行时间:"+(end2-begin2)); }Meine Maschine ist ziemlicher Schrott und das Ergebnis nach der Ausführung ist String-Laufzeit: 164593
-- ---------------
StringBuffer-Laufzeit: 31
public static void main(String[] args) { String a="abc"; boolean str=a.contains("b"); System.out.println(str); }Das Ausführungsergebnis ist wahr
Das obige ist der detaillierte Inhalt vonDifferenzanalyse zwischen java_String und StringBuffer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!