Verschil tussen String StringBuffer en StringBuilder in Java

Inhoudsopgave:

Verschil tussen String StringBuffer en StringBuilder in Java
Verschil tussen String StringBuffer en StringBuilder in Java

Video: Verschil tussen String StringBuffer en StringBuilder in Java

Video: Verschil tussen String StringBuffer en StringBuilder in Java
Video: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, December
Anonim

Belangrijk verschil – String vs StringBuffer vs StringBuilder in Java

String, StringBuffer en String Builder zijn klassen in Java. String wordt veel gebruikt in Java-programmering. Zodra een object van String is gemaakt, is het niet mogelijk om deze te wijzigen. Elke keer dat er een wijziging in de String plaatsvindt, wordt er een nieuwe String gemaakt. Zelfs als het een aaneenschakeling van een bestaande String is, wordt er een nieuwe String gemaakt. Dit veroorzaakt geheugenverspilling. StringBuffer- en StringBuilder-klassen in Java worden gebruikt om String te wijzigen. Het belangrijkste verschil tussen String, StringBuffer en StringBuilder in Java is dat String een klasse is om een object van het type String te maken dat een reeks tekens is, StringBuffer een klasse is die wordt gebruikt om Strings te wijzigen die threadveiligheid bieden, en StringBuilder is een class die wordt gebruikt om Strings te wijzigen die geen thread-veiligheid bieden.

Wat is String in Java?

String klasse is in java.lang pakket. Elke keer dat de programmeur een String maakt, is het een object van het type String. Strings zijn onveranderlijk, wat betekent dat als het object eenmaal is gemaakt, het niet meer kan worden gewijzigd. Objecten die zijn gemaakt met behulp van wrapper-klassen zoals Integer, Byte, Float, Double zijn ook onveranderlijk. Een letterlijke tekenreeks staat tussen dubbele aanhalingstekens. bijv. "Hallo Wereld". Elke keer dat er een letterlijke tekenreeks wordt gemaakt, controleert de Java Virtual Machine (JVM) de String-constante-pool. Als de String bestaat, wordt een verwijzing naar de String-constante-pool geretourneerd. Als het een nieuwe String is, wordt dat object gemaakt in de String-constante-pool.

Verschil tussen String StringBuffer en StringBuilder in Java
Verschil tussen String StringBuffer en StringBuilder in Java
Verschil tussen String StringBuffer en StringBuilder in Java
Verschil tussen String StringBuffer en StringBuilder in Java

Figuur 01: Java-programma met String, StringBuffer en StringBuilder

Verwijs naar het onderstaande stukje code.

String s1=“Hallo”;

s1=s1 + “Wereld”;

Systeem.uit.println(s1);

In de eerste instructie verwijst s1 naar de "Hallo" in de String-constante-pool. In de tweede instructie verandert JVM de bestaande String niet. In plaats daarvan wordt een nieuwe string gemaakt als "Hallo wereld" en s1 verwijst nu naar die nieuwe string. Het exit-object "Hallo" bestaat nog steeds in de String-constante-pool.

Als er een code is, String s1=”Hallo”;

String s2=s1;

s1, s2 verwijzen beide naar het String-object "Hallo".

Wat is StringBuffer in Java?

StringBuffer klasse wordt gebruikt om String-objecten veranderlijk te maken. Daarom kunnen die objecten worden gewijzigd. StringBuffer definieert vier constructors. StringBuffer(), StringBuffer(int grootte), StringBuffer(String str), StringBuffer (charSequence ch)

Verwijs naar de onderstaande code, StringBuffer s1=nieuwe StringBuffer(“Hallo”);

s1.append(“Wereld”);

Systeem.uit.println(s1);

In statement 1 verwijst s1 in een hoop naar het "Hallo"-object. Het object is veranderlijk omdat het is gemaakt met StringBuffer. In statement 2 wordt "World" toegevoegd aan hetzelfde "Hello" String-object.

String-objecten die met de klasse StringBuffer zijn gemaakt, kunnen geheugen besparen. StringBuffer biedt threadveiligheid omdat twee threads niet tegelijkertijd toegang hebben tot dezelfde methode in de StringBuffer-klasse. Draadveiligheid vermindert de StringBuffer-prestaties. De klasse StringBuffer bevat methoden zoals append(), insert(), reverse(), Replace().

Wat is StringBuilder in Java?

StringBuilder-klasse wordt gebruikt om String-objecten veranderlijk te maken. Daarom kunnen die objecten worden gewijzigd. De functionaliteit is vergelijkbaar met StringBuffer, maar dit biedt geen draadveiligheid. StringBuilder heeft constructors zoals StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Verwijs naar de onderstaande code.

StringBuilder s1=nieuwe StringBuilder(“Hallo”);

s1.append(“Wereld”);

Systeem.uit.println(s1);

In statement 1 verwijst s1 in een hoop naar het "Hallo"-object. Het object kan worden gewijzigd omdat het is gemaakt met StringBuilder. In statement 2 wordt "World" toegevoegd aan hetzelfde "Hello" String-object. Er is geen creatie van een volledig nieuw String-object.

String-objecten gemaakt met de StringBuilder-klasse kunnen geheugen besparen. In tegenstelling tot StringBuffer biedt StringBuilder geen threadbeveiliging omdat twee threads tegelijkertijd toegang hebben tot dezelfde methode in de StringBuilder-klasse. StringBuilder-klasse bevat methoden zoals append(), insert(), reverse(), Replace().

Wat is de overeenkomst tussen String, StringBuffer en StringBuilder in Java?

Alles kan worden gebruikt om Strings te maken

Wat is het verschil tussen String StringBuffer en StringBuilder in Java?

String vs StringBuffer vs StringBuilder

String De string is een Java-klasse die wordt gebruikt om een object van het type String te maken, wat een reeks tekens is.
StringBuffer StringBuffer is een Java-klasse die wordt gebruikt om String-objecten te maken, die kunnen worden gewijzigd met thread-beveiliging.
StringBuilder StringBuilder is een klasse die wordt gebruikt om string-objecten te maken, die kunnen worden gewijzigd zonder thread-beveiliging.
Veranderbaarheid
String De string is een onveranderlijke klasse.
StringBuffer StringBuffer is een veranderlijke klasse.
StringBuilder StringBuilder is een veranderlijke klasse.
Draadveiligheid
String Methods of String zijn draadveilig.
StringBuffer Methoden van StringBuffer zijn thread-safe en gesynchroniseerd.
StringBuilder Methoden van StringBuilder zijn niet veilig en niet gesynchroniseerd.
Prestaties
String De string is snel.
StringBuffer StringBuffer is traag.
StringBuilder StringBuilder is snel.

Samenvatting – String vs StringBuffer vs StringBuilder in Java

String, StringBuffer en StringBuilder lijken hetzelfde, maar ze hebben verschillende betekenissen. Dit zijn allemaal Java-klassen. Het verschil tussen String, StringBuffer en StringBuilder in Java is dat String een klasse is om een object van het type String te maken, wat een set tekens is, StringBuffer een klasse is die wordt gebruikt om Strings te wijzigen en threadveiligheid te bieden, terwijl StringBuilder een klasse die wordt gebruikt om Strings te wijzigen die geen threadbeveiliging bieden.

Download de PDF String vs StringBuffer vs StringBuilder in Java

U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden volgens de citatienota. Download hier de PDF-versie. Verschil tussen String StringBuffer en StringBuilder in Java

Aanbevolen: