Unterschied zwischen String StringBuffer und StringBuilder in Java

Schlüsseldifferenz - String vs StringBuffer vs StringBuilder in Java
 

String, StringBuffer und String Builder sind Klassen in Java. String wird häufig in der Java-Programmierung verwendet. Sobald ein Objekt von String erstellt wurde, ist es nicht möglich, sie zu ändern. Bei jeder Änderung des Strings wird ein neuer String erstellt. Selbst wenn es sich um eine Verkettung mit einem vorhandenen String handelt, wird ein neuer String erstellt. Dies führt zu Speicherverschwendung. StringBuffer- und StringBuilder-Klassen in Java werden zum Ändern von String verwendet. Das Hauptunterschied zwischen String, StringBuffer und StringBuilder in Java ist das String ist eine Klasse zum Erstellen eines Objekts vom Typ String, das eine Folge von Zeichen ist. StringBuffer ist eine Klasse, die zum Ändern von Strings verwendet wird, um Thread-Sicherheit zu bieten. StringBuilder ist eine Klasse, die zum Ändern von Strings verwendet wird, die keine Thread-Sicherheit bieten.

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist String in Java?
3. Was ist StringBuffer in Java?
4. Was ist StringBuilder in Java?
5. Ähnlichkeiten zwischen String StringBuffer und StringBuilder in Java
6. Side-by-Side-Vergleich - String vs StringBuffer vs StringBuilder in Java in tabellarischer Form
7. Zusammenfassung

Was ist String in Java??

Die String-Klasse befindet sich im Paket java.lang. Jedes Mal, wenn der Programmierer einen String erstellt, handelt es sich um ein Objekt vom Typ String. Zeichenfolgen sind unveränderlich und können nach dem Erstellen des Objekts nicht mehr geändert werden. Objekte, die mit Wrapper-Klassen wie Integer, Byte, Float, Double erstellt wurden, sind ebenfalls unveränderlich. Ein String-Literal wird in doppelte Anführungszeichen gesetzt. z.B. "Hallo Welt". Jedes Mal, wenn ein String-Literal erstellt wird, überprüft die Java Virtual Machine (JVM) den String-Konstantenpool. Wenn der String vorhanden ist, wird ein Verweis auf den String-Konstantenpool zurückgegeben. Wenn es sich um einen neuen String handelt, wird dieses Objekt im String-Konstantenpool erstellt.

Abbildung 01: Java-Programm, das String, StringBuffer und StringBuilder verwendet

Siehe den Code unten.

String s1 = "Hallo";

s1 = s1 + "Welt";

System.out.println (s1);

In der ersten Anweisung bezieht sich s1 auf das "Hello" im String-Konstantenpool. In der zweiten Anweisung ändert JVM den vorhandenen String nicht. Stattdessen wird ein neuer String als "Hello World" erstellt, und s1 verweist jetzt auf diesen neuen String. Das vorhandene "Hello" -Objekt ist immer noch im String-Konstantenpool vorhanden.

Wenn es einen Code gibt, der ist,

String s1 = "Hallo";

String s2 = s1;

s1, s2 beziehen sich beide auf das String-Objekt "Hello".

Was ist StringBuffer in Java??

Die StringBuffer-Klasse wird verwendet, um String-Objekte veränderbar zu machen. Daher können diese Objekte geändert werden. StringBuffer definiert vier Konstruktoren. StringBuffer (), StringBuffer (int size), StringBuffer (String str), StringBuffer (charSequence [] ch)

Siehe den Code unten,

StringBuffer s1 = neuer StringBuffer ("Hello");

s1.append ("Welt");

System.out.println (s1);

In Anweisung 1 bezieht sich s1 auf das "Hello" -Objekt in einem Heap. Das Objekt ist veränderbar, da es mit StringBuffer erstellt wird. In Anweisung 2 wird "World" an dasselbe String-Objekt "Hello" angehängt.

Mit der StringBuffer-Klasse erstellte String-Objekte können Speicherplatz sparen. StringBuffer bietet Threadsicherheit, da zwei Threads nicht gleichzeitig auf dieselbe Methode in der StringBuffer-Klasse zugreifen können. Thread-Sicherheit verringert die StringBuffer-Leistung. Die StringBuffer-Klasse enthält Methoden wie append (), insert (), reverse (), replace ()..

Was ist StringBuilder in Java??

Die StringBuilder-Klasse wird verwendet, um String-Objekte veränderbar zu machen. Daher können diese Objekte geändert werden. Die Funktionalität ähnelt der von StringBuffer, bietet jedoch keine Thread-Sicherheit. StringBuilder hat Konstruktoren wie StringBuilder (), StringBuilder (int size), StringBuilder (String str).

Siehe den Code unten.

StringBuilder s1 = neuer StringBuilder ("Hallo");

s1.append ("Welt");

System.out.println (s1);

In Anweisung 1 bezieht sich s1 auf das "Hello" -Objekt in einem Heap. Das Objekt ist veränderbar, da es mit StringBuilder erstellt wird. In Anweisung 2 wird "World" an dasselbe String-Objekt "Hello" angehängt. Es wird kein komplett neues String-Objekt erstellt.

Mit der StringBuilder-Klasse erstellte String-Objekte können Speicherplatz sparen. Im Gegensatz zu StringBuffer bietet StringBuilder keine Thread-Sicherheit, da zwei Threads gleichzeitig auf dieselbe Methode in der StringBuilder-Klasse zugreifen können. Die StringBuilder-Klasse enthält Methoden wie append (), insert (), reverse (), replace ()..

Was ist die Ähnlichkeit zwischen String, StringBuffer und StringBuilder in Java??

  • Alle können zum Erstellen von Strings verwendet werden.

Was ist der Unterschied zwischen String StringBuffer und StringBuilder in Java??

String vs StringBuffer vs StringBuilder

String Der String ist eine Java-Klasse, die zum Erstellen eines Objekts vom Typ String verwendet wird, bei dem es sich um eine Folge von Zeichen handelt.
StringBuffer StringBuffer ist eine Java-Klasse, die zum Erstellen von String-Objekten verwendet wird, die mit Thread-Sicherheit geändert werden können.
StringBuilder StringBuilder ist eine Klasse, mit der String-Objekte erstellt werden, die ohne Thread-Sicherheit geändert werden können.
Wandlungsfähigkeit
String Die Zeichenfolge ist eine unveränderliche Klasse.
StringBuffer StringBuffer ist eine veränderliche Klasse.
StringBuilder StringBuilder ist eine veränderliche Klasse.
Fadensicherheit
String Methoden von String sind threadsicher.
StringBuffer Methoden von StringBuffer sind threadsicher und synchronisiert.
StringBuilder Methoden von StringBuilder sind nicht sicher und nicht synchronisiert.
Performance
String Die Zeichenfolge ist schnell.
StringBuffer StringBuffer ist langsam.
StringBuilder StringBuilder ist schnell.

Zusammenfassung - String vs StringBuffer vs StringBuilder in Java 

String, StringBuffer und StringBuilder scheinen identisch zu sein, haben jedoch unterschiedliche Bedeutungen. All dies sind Java-Klassen. Der Unterschied zwischen String, StringBuffer und StringBuilder in Java besteht darin, dass String eine Klasse zum Erstellen eines Objekts vom Typ String ist, bei dem es sich um eine Menge von Zeichen handelt. StringBuffer ist eine Klasse, die zum Ändern von Strings und zur Gewährleistung der Thread-Sicherheit verwendet wird, während StringBuilder ein String ist Klasse, die zum Ändern von Strings verwendet wird, die keine Thread-Sicherheit bieten.

Laden Sie den PDF-String vs StringBuffer vs StringBuilder in Java herunter

Sie können die PDF-Version dieses Artikels herunterladen und gemäß dem Zitiervermerk für Offline-Zwecke verwenden. Laden Sie die PDF-Version hier herunter. Unterschied zwischen String StringBuffer und StringBuilder in Java

Referenz:

1. „String vs StringBuffer vs StringBuilder“. JournalDev, 30. Juli 2017. Hier verfügbar
2. "Java Hungry". Unterschied zwischen String-, StringBuilder- und StringBuffer-Klassen mit Beispiel: Java | Java hungrig. Hier verfügbar 
3.Tutorialspoint.com. "Java-Zeichenfolgen". Die StelleHier verfügbar