Inhaltsverzeichnis
Einfacher Vergleich
2. String-Verarbeitung von Strings
Beispiel 1:
3. StringBuilder / StringBuffer-Konstruktionsmerkmale
4. Vergleich der String- und StringBuilder-Verarbeitung des String-Spleißens
Heim Java javaLernprogramm Sie müssen String, StringBuilder und StringBuffer herausfinden

Sie müssen String, StringBuilder und StringBuffer herausfinden

Jul 20, 2018 am 09:37 AM
string stringbuffer stringbuilder

Die Beziehung und der Unterschied zwischen den drei Klassen String, StringBuilder und StringBuffer waren schon immer ein klassisches Thema in Java. Dieses Mal werde ich über einige Kenntnisse über diese drei Klassen sprechen

Einfacher Vergleich

  • String: Zeichenkonstante

  • StringBuilder: Zeichenvariable

  • StringBuffer: Zeichenvariable

String ist ein konstanter Typ und wird als endgültige Klasse deklariert. Sobald das String-Objekt erstellt wurde, kann es nicht mehr geändert werden.
Die beiden Klassen StringBuilder/StringBuffer gehören zur Variablen Typen können geändert werden, sie sind alle Klassen, die bereitgestellt werden, um das Problem zu lösen, dass durch die Zeichenfolgenverkettung zu viele Zwischenobjekte entstehen.

  • Laufgeschwindigkeit StringBuilder > StringBuffer > String

  • Thread-Sicherheit: StringBuffer

  • Nicht Thread-Sicherheit: StringBuilder

StringBuilder unterscheidet sich im Wesentlichen nicht wesentlich von StringBuffer, aber da StringBuilder den Thread-Sicherheitsteil von StringBuffer entfernt, wird der Overhead effektiv reduziert. Daher ist StringBuilder in den meisten Fällen die erste Wahl für String-Splicing-Vorgänge

2. String-Verarbeitung von Strings

Beispiel 1:

String s = "abcd";
s = s + "fgh";
Nach dem Login kopieren

Viele Leute Wann Bei einer solchen String-Verarbeitung wird fälschlicherweise angenommen, dass der String-Typ variabel ist.

Aber tatsächlich ist der Prozess der JVM-Verarbeitung dieses Codes wie folgt: Erstellen Sie zuerst das s-Objekt, weisen Sie den Wert „abcd“ zu, und erstellen Sie dann bei der Verarbeitung der zweiten Codezeile ein weiteres s-Objekt und weisen Sie es zu der Wert „abcdfgh“ und dann Das erste s-Objekt wird durch Müll gesammelt.

Es ist also gleichbedeutend damit, dass sich das erste s nicht ändert, das zweite s ist ein neues Objekt

Beispiel 2:

String str = “This is only a” + “simple” + “test”;
Nach dem Login kopieren

Dieser Code ist äquivalent zuString str = “This is only a simple test”;

Beispiel 3:

String str2 = "This is only a";
String str3 = "simple";
String str4 = "test";
String str1 = str2 +str3 + str4;
Nach dem Login kopieren

Dieser Code wird auch gemäß dem Prozess von Beispiel 1 verarbeitet

3. StringBuilder / StringBuffer-Konstruktionsmerkmale

Diese beiden Objekte Während Beantragen Sie im Konstruktionsprozess zunächst ein Zeichenarray (char[]) entsprechend der Standardgröße. Wenn diese jedoch überschritten wird, wird Arrays.copyOf() verwendet, um die Kapazität auf 16, 32, zu verdoppeln. 64, 128.. . Dies wirkt sich natürlich auf die Leistung aus, sodass Sie die Kapazität beim Erstellen eines Objekts nach Bedarf anpassen können

//默认 16 个字符
public StringBuilder() {
    super(16);
}
//构造函数定义容量
public StringBuilder(int capacity) {
    super(capacity);
}
Nach dem Login kopieren

4. Vergleich der String- und StringBuilder-Verarbeitung des String-Spleißens

Wir Jeder weiß, dass String-Verkettung Es wird empfohlen, StringBuilder während des Spleißvorgangs zu verwenden. Wird jedoch immer empfohlen, StringBuilder anstelle von String zum String-Spleißen zu verwenden? Offensichtlich nicht.

Beispiel 1:

String str = "123";
String str1 = str + "456";
String str2 = new StringBuilder().append(str).append("def").toString();
Nach dem Login kopieren

In diesem Fall gibt es kaum einen Unterschied in der Effizienz zwischen den beiden Verarbeitungsmethoden

InJDK 8, der String-Splice-Vorgang wird vom Compiler automatisch in StringBuilder konvertiert und die Append-Methode wird aufgerufen. Aufgrund dieses Optimierungsschemas unterscheidet sich die Verarbeitungseffizienz der beiden Klassen in diesem Fall nicht wesentlich 🎜>JDK 9 Um String-Operationen gleichmäßiger zu optimieren, wird StringConcatFactory als einheitlicher Eingang bereitgestellt, um String-Spleißoperationen weiter zu optimieren.

Beispiel 2:

String str = "";
for (int i = 0; i < 1000; i++) {
    str += "12345";
}

StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 1000; i++) {
    stringBuilder.append("12345");
}
Nach dem Login kopieren

In diesem Fall ist StringBuilder schneller

In der Schleife wird jedes Mal, wenn „+“ ausgeführt wird, ein String-Objekt erstellt Daher wird es viel Objekterstellung und Recyclingverbrauch geben.

Um es einfach auszudrücken: In der

-Schleife, um String-Splicing für dasselbe String-Objekt durchzuführen, StringBuilder

Beispiel 3 wird bevorzugt

String str1 = "123" + "456" + "789";

String str2 = new StringBuilder("123").append("456").append("789").toString();
Nach dem Login kopieren

In diesem Fall ist String schneller

Wir alle wissen, dass

eigentlich äquivalent zu String str1 = "123" + "456" + "789"; ist, aber StringBuilder muss die Append-Methode mehrmals aufrufen. String str1 = "123456789";

Das obige ist der detaillierte Inhalt vonSie müssen String, StringBuilder und StringBuffer herausfinden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Konvertieren Sie grundlegende Datentypen mit der Java-Funktion String.valueOf() in Strings Konvertieren Sie grundlegende Datentypen mit der Java-Funktion String.valueOf() in Strings Jul 24, 2023 pm 07:55 PM

Konvertieren Sie grundlegende Datentypen mit der Java-Funktion String.valueOf() in Strings. Wenn wir in der Java-Entwicklung grundlegende Datentypen in Strings konvertieren müssen, ist eine gängige Methode die Verwendung der Funktion valueOf() der String-Klasse. Diese Funktion kann Parameter grundlegender Datentypen akzeptieren und die entsprechende Zeichenfolgendarstellung zurückgeben. In diesem Artikel untersuchen wir, wie die Funktion String.valueOf() für grundlegende Datentypkonvertierungen verwendet wird, und stellen einige Codebeispiele dafür bereit

So konvertieren Sie ein Char-Array in einen String So konvertieren Sie ein Char-Array in einen String Jun 09, 2023 am 10:04 AM

Methode zum Konvertieren eines char-Arrays in einen String: Dies kann durch Zuweisung erreicht werden. Verwenden Sie die Syntax {char a[]=" abc d\0efg ";string s=a;}, damit das char-Array dem String direkt einen Wert zuweisen und ausführen kann Der Code zum Abschließen der Konvertierung.

Welche Methoden gibt es, um Stringbuilder zu löschen? Welche Methoden gibt es, um Stringbuilder zu löschen? Oct 12, 2023 pm 04:57 PM

Die Methoden zum Löschen des StringBuilder sind: 1. Verwenden Sie die Methode setLength(0), um das StringBuilder-Objekt zu löschen. 2. Verwenden Sie die Methode delete(0, length), um das StringBuilder-Objekt zu löschen. ")-Methode zum Löschen des StringBuilder-Objekts; 4. , Verwenden Sie new StringBuilder(), um ein neues StringBuilder-Objekt neu zu erstellen.

Verwenden Sie die Methode delete() der Klasse StringBuilder in Java, um einen Teil des Inhalts in der Zeichenfolge zu löschen Verwenden Sie die Methode delete() der Klasse StringBuilder in Java, um einen Teil des Inhalts in der Zeichenfolge zu löschen Jul 26, 2023 pm 08:43 PM

Verwenden Sie die delete()-Methode der StringBuilder-Klasse in Java, um einen Teil des Inhalts in einer Zeichenfolge zu löschen. Die String-Klasse ist eine häufig verwendete Zeichenfolgenverarbeitungsklasse in Java. Sie verfügt über viele häufig verwendete Methoden für Zeichenfolgenoperationen. In einigen Fällen müssen wir jedoch häufig Zeichenfolgen ändern, und die Unveränderlichkeit der String-Klasse führt dazu, dass häufig neue Zeichenfolgenobjekte erstellt werden, was sich negativ auf die Leistung auswirkt. Um dieses Problem zu lösen, stellt Java die StringBuilder-Klasse bereit

Konvertieren Sie einen String in StringBuilder in Java Konvertieren Sie einen String in StringBuilder in Java Sep 02, 2023 pm 03:57 PM

Die append()-Methode der StringBuilder-Klasse akzeptiert einen String-Wert und fügt ihn dem aktuellen Objekt hinzu. String-Wert in StringBuilder-Objekt konvertieren – String-Wert abrufen. Hängen Sie mit der Methode append() an, um die Zeichenfolge an den StringBuilder zu übertragen. Beispiel Im folgenden Java-Programm konvertieren wir ein String-Array in ein einzelnes StringBuilder-Objekt. Echtzeitdemonstration publicclassStringToStringBuilder{ publicstaticvoidmain(Stringargs[]){&a

Verwenden Sie die String.replace()-Funktion von Java, um Zeichen (Strings) in einem String zu ersetzen Verwenden Sie die String.replace()-Funktion von Java, um Zeichen (Strings) in einem String zu ersetzen Jul 25, 2023 pm 05:16 PM

Ersetzen Sie Zeichen (Strings) in einem String mit der Java-Funktion String.replace(). In Java sind Strings unveränderliche Objekte, was bedeutet, dass der Wert eines String-Objekts nach der Erstellung nicht mehr geändert werden kann. Es kann jedoch vorkommen, dass Sie bestimmte Zeichen oder Zeichenfolgen in einer Zeichenfolge ersetzen müssen. Zu diesem Zeitpunkt können wir die Methode replace () in der String-Klasse von Java verwenden, um das Ersetzen von Zeichenfolgen zu implementieren. Die Methode replace() der Klasse String hat zwei Typen:

Interpretation der Java-Dokumentation: Detaillierte Einführung in die substring()-Methode der StringBuilder-Klasse Interpretation der Java-Dokumentation: Detaillierte Einführung in die substring()-Methode der StringBuilder-Klasse Nov 03, 2023 pm 04:31 PM

Interpretation der Java-Dokumentation: Detaillierte Einführung in die substring()-Methode der StringBuilder-Klasse. Einführung: In der Java-Programmierung ist die String-Verarbeitung eine der häufigsten Operationen. Java bietet eine Reihe von Klassen und Methoden für die String-Verarbeitung, unter denen die StringBuilder-Klasse eine häufig verwendete Wahl für häufige String-Operationen ist. In der StringBuilder-Klasse ist die Methode substring() eine sehr nützliche Methode zum Abfangen von Teilzeichenfolgen von Zeichenfolgen. Dieser Artikel wird

2w Wörter detaillierte Erklärung String, yyds 2w Wörter detaillierte Erklärung String, yyds Aug 24, 2023 pm 03:56 PM

Hallo zusammen, heute werde ich die Grundkenntnisse von Java: String mit Ihnen teilen. Unnötig zu erwähnen, wie wichtig die String-Klasse ist. Man kann sagen, dass sie die am häufigsten verwendete Klasse in unserer Back-End-Entwicklung ist, daher ist es notwendig, darüber zu sprechen.

See all articles