Die Unterschiede sind wie folgt:
1) Sobald der Inhalt der String-Klasse deklariert ist, kann er nicht mehr geändert werden Der Objektinhalt der StringBuffer-Klasse ist Kann geändert werden.
2) Für StringBuffer kann die Objektinstanziierung nicht direkt durch Zuweisung wie String abgeschlossen werden, sondern muss über die Konstruktormethode abgeschlossen werden.
3) StringBuffer generiert bei der Verarbeitung von Strings keine neuen Objekte und seine Speichernutzung ist besser als die der String-Klasse. Wenn Sie daher im tatsächlichen Gebrauch häufig eine Zeichenfolge ändern müssen, z. B. durch Einfügen, Löschen und andere Vorgänge, ist die Verwendung von StringBuffer besser geeignet.
Online-Lehrvideo-Sharing: Java-Video
Beispiel: String-Objekt kann nicht geändert werden bedeutet, dass das Objekt selbst nicht geändert werden kann, nicht, dass die Referenz nicht geändert werden kann.
String a = “你好”;
Diese Codezeile bedeutet, eine Referenzvariable vom Typ String namens a zu deklarieren, ein String-Objekt im Speicher zu erstellen (mit dem Wert „Hallo“) und dann die Referenz dieses Objekts dem zuzuweisen Variable a.
a = “hello”;
Der Effekt dieser Codezeile besteht darin, ein weiteres String-Objekt (mit dem Wert „Hallo“) im Speicher zu erstellen und dann die Referenz dieses neuen Objekts der Variablen a anstelle der ursprünglichen Zeichenfolge zuzuweisen Objekt im Speicher. Der String-Objektwert von „hello“ wird zu „hello“.
4) Der größte Unterschied zwischen StringBuilder und StringBuffer besteht darin, dass die Methoden von StringBuilder nicht threadsicher sind (nicht synchron auf sie zugegriffen werden kann).
5) StringBuilder hat im Vergleich zu StringBuffer einen Geschwindigkeitsvorteil, daher wird in den meisten Fällen die Verwendung der StringBuilder-Klasse empfohlen. Wenn die Anwendung jedoch Thread-Sicherheit erfordert, muss die StringBuffer-Klasse verwendet werden.
Wenn Sie weitere Artikel zum Thema Java erfahren möchten, besuchen Sie: Einführung in die Java-Programmierung
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen String, StringBuffer und StringBuilder in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!