Unterschied zwischen String, StringBuffer und StringBuilder in Java – Beispiel anbei

Veröffentlicht: 2022-01-30
Unterschied zwischen String, StringBuffer und StringBuilder in Java - Vergleich und Beispiel anbei

In diesem Java-Tutorial gehen wir auf den Unterschied zwischen Java String, StringBuffer und StringBuilder ein.

Lass uns anfangen:

Zeichenfolge:

Die String-Klasse repräsentiert Zeichenfolgen. Alle String-Literale in Java-Programmen, wie zB „crunchify“, sind als Instanzen dieser Klasse implementiert. Zeichenfolgen sind konstant; Ihre Werte können nach ihrer Erstellung nicht mehr geändert werden.

Zeichenfolgenpuffer:

Eine Thread-sichere, änderbare Zeichenfolge. Ein Zeichenfolgenpuffer ist wie eine Zeichenfolge, kann jedoch geändert werden.

Es enthält zu jedem Zeitpunkt eine bestimmte Zeichenfolge, aber die Länge und der Inhalt der Zeichenfolge können durch bestimmte Methodenaufrufe geändert werden.

Zeichenfolgenpuffer können sicher von mehreren Threads verwendet werden.

StringBuilder:

Eine veränderliche Folge von Zeichen. Diese Klasse stellt eine API bereit, die mit StringBuffer kompatibel ist, jedoch keine Synchronisationsgarantie bietet.

Diese Klasse ist für die Verwendung als Drop-In-Ersatz für StringBuffer an Stellen konzipiert, an denen der Zeichenfolgenpuffer von einem einzelnen Thread verwendet wurde (wie dies im Allgemeinen der Fall ist).

Wenn möglich, wird empfohlen, diese Klasse StringBuffer vorzuziehen, da sie unter den meisten Implementierungen schneller ist.

Lassen Sie uns alle untenstehenden Merkmale von String, StringBuffer und StringBuilder vergleichen.

Schnur Zeichenfolgenpuffer StringBuilder
Threadsicher? Jawohl Jawohl Nein
Synchronisiert? Jawohl Jawohl Nein
Modifizierbar? Nein (unveränderlich) Ja (änderbar) Ja (änderbar)
Lager String-Pool Haufen Haufen
Leistung Schleppend Schnell Schneller

Java-Code:

  • Klasse erstellen: CrunchifyStringVsStringBufferVsStringBuilder.java
  • Fügen Sie den folgenden Code ein
  • Datei speichern

In diesem Tutorial fügen wir Strings insgesamt 199999 Mal hinzu und hängen sie an.

Ergebnis der IntelliJ IDEA-Konsole:

Führen Sie das obige Programm als Java-Anwendung in IntelliJ IDEA oder in der Eclipse-Konsole aus, und Sie erhalten das folgende Ergebnis.

Lassen Sie mich wissen, wenn Sie auf ein Problem mit dem oben genannten Programm stoßen oder Fragen zwischen String, StringBuffer und StringBuilder haben.