Belangrijkste verschil - String versus StringBuffer versus StringBuilder in Java
String, StringBuffer en String Builder zijn klassen in Java. String wordt veel gebruikt bij het programmeren van Java. Zodra een object van String is gemaakt, is het niet mogelijk om deze te wijzigen. Elke keer dat er een wijziging in de String optreedt, wordt 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 die wordt gebruikt om Strings te wijzigen die draadveiligheid bieden, en StringBuilder is een klasse die wordt gebruikt om strings te wijzigen die geen thread-veiligheid bieden.
INHOUD
1. Overzicht en belangrijkste verschil
2. Wat is String in Java
3. Wat is StringBuffer in Java
4. Wat is StringBuilder in Java
5. Overeenkomsten tussen String StringBuffer en StringBuilder in Java
6. Vergelijking zij aan zij - String versus StringBuffer versus StringBuilder in Java in tabelvorm
7. Samenvatting
Wat is String in Java?
String-klasse bevindt zich in het java.lang-pakket. Elke keer dat de programmeur een String maakt, is dit een object van het type String. Strings zijn onveranderlijk, wat betekent dat als het object eenmaal is gemaakt, het niet 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 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 constant pool.
Figuur 01: Java-programma met String, StringBuffer en StringBuilder
Raadpleeg het onderstaande stuk code.
String s1 = "Hallo";
s1 = s1 + "Wereld";
System.out.println (s1);
In de eerste instructie verwijst s1 naar de "Hallo" in de String constant pool. In de tweede instructie verandert JVM de bestaande String niet. In plaats daarvan maakt het een nieuwe String aan als "Hallo Wereld" en s1 verwijst nu naar die nieuwe String. Het bestaande "Hello" -object bestaat nog steeds in de String-constante pool.
Als er een code is, String s1 = "Hallo";
String s2 = s1;
s1, s2 zullen beide verwijzen naar het String-object “Hallo”.
Wat is StringBuffer in Java?
De klasse StringBuffer wordt gebruikt om String-objecten veranderlijk te maken. Daarom kunnen die objecten worden gewijzigd. StringBuffer definieert vier constructors. StringBuffer (), StringBuffer (int size), StringBuffer (String str), StringBuffer (charSequence ch)
Raadpleeg de onderstaande code, StringBuffer s1 = nieuwe StringBuffer ("Hallo");
s1.append ("Wereld");
System.out.println (s1);
In statement 1 verwijst s1 naar het "Hello" -object in een heap. Het object is veranderlijk omdat het is gemaakt met StringBuffer. In instructie 2 wordt "World" toegevoegd aan hetzelfde "Hello" String-object.
String-objecten gemaakt met de StringBuffer-klasse kunnen geheugen besparen. StringBuffer biedt thread-veiligheid omdat twee threads niet tegelijkertijd toegang hebben tot dezelfde methode in de StringBuffer-klasse. Draadveiligheid vermindert de StringBuffer-prestaties. StringBuffer-klasse bevat methoden zoals append (), insert (), reverse (), replace ().
Wat is StringBuilder in Java?
StringBuilder-klasse wordt gebruikt om String-objecten veranderbaar te maken. Daarom kunnen die objecten worden gewijzigd. De functionaliteit is vergelijkbaar met StringBuffer, maar biedt geen thread-veiligheid. StringBuilder heeft constructeurs zoals StringBuilder (), StringBuilder (int size), StringBuilder (String str).
Raadpleeg de onderstaande code.
StringBuilder s1 = nieuwe StringBuilder ("Hallo");
s1.append ("Wereld");
System.out.println (s1);
In statement 1 verwijst s1 naar het "Hello" -object in een heap. Het object is veranderlijk omdat het is gemaakt met StringBuilder. In instructie 2 wordt "World" toegevoegd aan hetzelfde "Hello" String-object. Er is geen volledig nieuw String-object gemaakt.
String-objecten gemaakt met de StringBuilder-klasse kunnen geheugen besparen. In tegenstelling tot StringBuffer biedt StringBuilder geen thread-veiligheid 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?
Ze kunnen allemaal worden gebruikt om strings te maken
Wat is het verschil tussen String StringBuffer en StringBuilder in Java?
Diff Artikel Midden voor Tafel
String versus StringBuffer versus StringBuilder |
|
Draad | 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-veiligheid. |
StringBuilder | StringBuilder is een klasse die wordt gebruikt om string-objecten te maken, die kunnen worden gewijzigd zonder thread-veiligheid. |
Veranderlijkheid | |
Draad | De string is een onveranderlijke klasse. |
StringBuffer | StringBuffer is een veranderlijke klasse. |
StringBuilder | StringBuilder is een veranderlijke klasse. |
Draadveiligheid | |
Draad | Methods of String zijn thread-safe. |
StringBuffer | Methoden van StringBuffer zijn thread-safe en gesynchroniseerd. |
StringBuilder | Methoden van StringBuilder zijn niet veilig en niet gesynchroniseerd. |
Prestatie | |
Draad | De string is snel. |
StringBuffer | StringBuffer is traag. |
StringBuilder | StringBuilder is snel. |
Samenvatting - String versus StringBuffer versus StringBuilder in Java
String, StringBuffer en StringBuilder lijken hetzelfde te zijn, 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 die wordt gebruikt om Strings te wijzigen en draadveiligheid te bieden, terwijl StringBuilder een klasse die wordt gebruikt om strings te wijzigen die geen thread-veiligheid bieden.
Download de PDF String vs StringBuffer vs StringBuilder in Java
U kunt de PDF-versie van dit artikel downloaden en voor offline doeleinden gebruiken volgens de citatienota. Download hier de pdf-versie. Verschil tussen String StringBuffer en StringBuilder in Java