Hauptunterschied – 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 String-Objekt erstellt wurde, ist es nicht mehr möglich, es zu ändern. Jedes Mal, wenn eine Änderung am String auftritt, wird ein neuer String erstellt. Auch wenn es sich um eine Verkettung mit einem vorhandenen String handelt, wird ein neuer String erstellt. Dies verursacht Speicherverschwendung. StringBuffer- und StringBuilder-Klassen in Java werden verwendet, um String zu ändern. Der Hauptunterschied zwischen String, StringBuffer und StringBuilder in Java besteht darin, dass String eine Klasse zum Erstellen eines Objekts vom Typ String ist, das eine Folge von Zeichen ist, StringBuffer eine Klasse zum Ändern von Strings ist, die Thread-Sicherheit bietet, und StringBuilder eine ist Klasse, die verwendet wird, um Zeichenfolgen zu ändern, die keine Threadsicherheit bieten.
Was ist String in Java?
String-Klasse ist 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, dh sobald das Objekt erstellt wurde, kann es nicht mehr geändert werden. Objekte, die mit Wrapper-Klassen wie Integer, Byte, Float, Double erstellt wurden, sind ebenfalls unveränderlich. Ein Zeichenfolgenliteral wird in doppelte Anführungszeichen eingeschlossen. z. B. "Hallo Welt". Jedes Mal, wenn ein Zeichenfolgenliteral erstellt wird, prü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 mit String, StringBuffer und StringBuilder
Beziehen Sie sich auf 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 erstellt es einen neuen String als „Hello World“und s1 bezieht sich jetzt auf diesen neuen String. Das austretende „Hallo“-Objekt existiert immer noch im String-Konstantenpool.
Wenn es einen Code gibt, der lautet, String s1="Hallo";
String s2=s1;
s1, s2 beziehen sich beide auf das String-Objekt „Hello“.
Was ist StringBuffer in Java?
Die Klasse StringBuffer wird verwendet, um String-Objekte ä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)
Beziehen Sie sich auf den Code unten, StringBuffer s1=neuer StringBuffer(“Hallo”);
s1.append(“Welt”);
System.out.println(s1);
In Anweisung 1 bezieht sich s1 auf das „Hello“-Objekt in einem Heap. Das Objekt ist änderbar, da es mit StringBuffer erstellt wird. In Anweisung 2 wird „World“an dasselbe „Hello“-String-Objekt angehängt.
String-Objekte, die mit der Klasse StringBuffer erstellt wurden, können Speicher sparen. StringBuffer bietet Threadsicherheit, da zwei Threads nicht gleichzeitig auf dieselbe Methode in der StringBuffer-Klasse zugreifen können. Thread-Sicherheit verringert die Leistung von StringBuffer. Die Klasse StringBuffer enthält Methoden wie append(), insert(), reverse(), replace().
Was ist StringBuilder in Java?
StringBuilder-Klasse wird verwendet, um String-Objekte änderbar zu machen. Daher können diese Objekte geändert werden. Die Funktionalität ist ähnlich wie bei StringBuffer, aber dies bietet keine Thread-Sicherheit. StringBuilder hat Konstruktoren wie StringBuilder(), StringBuilder(int size), StringBuilder(String str).
Beziehen Sie sich auf den folgenden Code.
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 änderbar, da es mit StringBuilder erstellt wird. In Anweisung 2 wird „World“an dasselbe „Hello“-String-Objekt angehängt. Es wird kein komplett neues String-Objekt erstellt.
String-Objekte, die mit der Klasse StringBuilder erstellt wurden, können Speicher sparen. Im Gegensatz zu StringBuffer bietet StringBuilder keine Threadsicherheit, da zwei Threads gleichzeitig auf dieselbe Methode in der StringBuilder-Klasse zugreifen können. Die Klasse StringBuilder enthält Methoden wie append(), insert(), reverse(), replace().
Was ist die Ähnlichkeit zwischen String, StringBuffer und StringBuilder in Java?
Alle können verwendet werden, um Strings zu erstellen
Was ist der Unterschied zwischen String StringBuffer und StringBuilder in Java?
String vs. StringBuffer vs. StringBuilder |
|
String | Der String ist eine Java-Klasse, die verwendet wird, um ein Objekt vom Typ String zu erstellen, das eine Folge von Zeichen ist. |
StringBuffer | StringBuffer ist eine Java-Klasse, die verwendet wird, um String-Objekte zu erstellen, die mit Thread-Sicherheit modifiziert werden können. |
StringBuilder | StringBuilder ist eine Klasse, die verwendet wird, um String-Objekte zu erstellen, die ohne Thread-Sicherheit modifiziert werden können. |
Veränderlichkeit | |
String | Der String ist eine unveränderliche Klasse. |
StringBuffer | StringBuffer ist eine veränderliche Klasse. |
StringBuilder | StringBuilder ist eine veränderliche Klasse. |
Gewindesicherheit | |
String | String-Methoden sind Thread-sicher. |
StringBuffer | Methoden von StringBuffer sind Thread-sicher und synchronisiert. |
StringBuilder | Methoden von StringBuilder sind nicht threadsicher und nicht synchronisiert. |
Leistung | |
String | Die Saite ist schnell. |
StringBuffer | StringBuffer ist langsam. |
StringBuilder | StringBuilder ist schnell. |
Zusammenfassung – String vs. StringBuffer vs. StringBuilder in Java
String, StringBuffer und StringBuilder scheinen gleich zu sein, haben aber unterschiedliche Bedeutungen. All dies sind Java-Klassen. Der Unterschied zwischen String, StringBuffer und StringBuilder in Java besteht darin, dass String eine Klasse ist, um ein Objekt vom Typ String zu erstellen, das eine Menge von Zeichen ist, StringBuffer eine Klasse ist, die verwendet wird, um Strings zu ändern und Thread-Sicherheit bereitzustellen, während StringBuilder eine ist Klasse, die verwendet wird, um Strings zu modifizieren, die keine Thread-Sicherheit bieten.
Laden Sie das PDF String vs. StringBuffer vs. StringBuilder in Java herunter
Sie können die PDF-Version dieses Artikels herunterladen und gemäß Zitationshinweis für Offline-Zwecke verwenden. Bitte laden Sie die PDF-Version hier herunter. Unterschied zwischen String StringBuffer und StringBuilder in Java