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.
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
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".
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 ()..
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 ()..
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. |
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.
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
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 Stelle. Hier verfügbar