Unterschied Zwischen String StringBuffer Und StringBuilder In Java

Inhaltsverzeichnis:

Unterschied Zwischen String StringBuffer Und StringBuilder In Java
Unterschied Zwischen String StringBuffer Und StringBuilder In Java

Video: Unterschied Zwischen String StringBuffer Und StringBuilder In Java

Video: Unterschied Zwischen String StringBuffer Und StringBuilder In Java
Video: Уроки по Java. Классы StringBuffer и StringBuilder. Часть 1 2024, April
Anonim

Hauptunterschied - String vs StringBuffer vs StringBuilder in Java

String, StringBuffer und String Builder sind Klassen in Java. String ist in der Java-Programmierung weit verbreitet. Sobald ein Objekt von String erstellt wurde, können diese nicht mehr geändert werden. Jedes Mal, wenn eine Änderung an der Zeichenfolge vorgenommen wird, wird eine neue Zeichenfolge erstellt. Auch 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. 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 ist eine Klasse, die zum Ändern von Strings verwendet wird, die Thread-Sicherheit bieten, und StringBuilder ist eine Klasse, die zum Ändern von Strings verwendet wird, die keine Thread-Sicherheit bieten.

INHALT

1. Übersicht und Hauptunterschied

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. Nebeneinander Vergleich - String vs StringBuffer vs StringBuilder in Java in Tabellenform

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, 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 String-Literal wird in doppelte Anführungszeichen gesetzt. zB "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.

Unterschied zwischen String StringBuffer und StringBuilder in Java
Unterschied zwischen String StringBuffer und StringBuilder in Java

Abbildung 01: Java-Programm mit String, StringBuffer und StringBuilder

Lesen Sie den folgenden Code.

String s1 = "Hallo";

s1 = s1 + "Welt";

System.out.println (s1);

In der ersten Anweisung bezieht sich s1 auf das "Hallo" im String-Konstantenpool. In der zweiten Anweisung ändert JVM den vorhandenen String nicht. Stattdessen wird ein neuer String als "Hello World" erstellt und s1 bezieht sich jetzt auf diesen neuen String. Das beendende "Hallo" -Objekt ist 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 folgenden Code, StringBuffer s1 = neuer StringBuffer ("Hallo");

s1.append ("Welt");

System.out.println (s1);

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

Mit der StringBuffer-Klasse erstellte String-Objekte können Speicherplatz sparen. StringBuffer bietet Thread-Sicherheit, da zwei Threads nicht gleichzeitig auf dieselbe Methode in der StringBuffer-Klasse zugreifen können. Die 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 verfügt über Konstruktoren wie StringBuilder (), StringBuilder (int size), StringBuilder (String str).

Siehe den folgenden Code.

StringBuilder s1 = neuer StringBuilder ("Hallo");

s1.append ("Welt");

System.out.println (s1);

In Anweisung 1 bezieht sich s1 auf das "Hallo" -Objekt in einem Heap. Das Objekt ist veränderbar, da es mit StringBuilder erstellt wird. In Anweisung 2 wird "Welt" an dasselbe "Hallo" -Stringobjekt angehängt. Es wird kein vollständig 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?

Diff Artikel Mitte vor Tabelle

String vs StringBuffer vs StringBuilder

String Die Zeichenfolge ist eine Java-Klasse, mit der ein Objekt vom Typ Zeichenfolge erstellt wird, bei dem es sich um eine Folge von Zeichen handelt.
StringBuffer StringBuffer ist eine Java-Klasse, mit der String-Objekte erstellt werden, 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änderbare Klasse.
StringBuilder StringBuilder ist eine veränderbare Klasse.
Gewindesicherheit
String String-Methoden sind threadsicher.
StringBuffer Die Methoden von StringBuffer sind threadsicher und synchronisiert.
StringBuilder Methoden von StringBuilder sind nicht threadsicher und nicht synchronisiert.
Performance
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 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 Zeichenfolge handelt. StringBuffer ist eine Klasse, die zum Ändern von Strings und zur Gewährleistung der Thread-Sicherheit verwendet wird, während StringBuilder eine Klasse ist Klasse, die zum Ändern von Strings verwendet wird, die keine Thread-Sicherheit bieten.

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

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

Empfohlen: