Rozdiel medzi String StringBuffer a StringBuilder v Jave

Obsah:

Rozdiel medzi String StringBuffer a StringBuilder v Jave
Rozdiel medzi String StringBuffer a StringBuilder v Jave

Video: Rozdiel medzi String StringBuffer a StringBuilder v Jave

Video: Rozdiel medzi String StringBuffer a StringBuilder v Jave
Video: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, November
Anonim

Kľúčový rozdiel – String vs StringBuffer vs StringBuilder v jazyku Java

String, StringBuffer a String Builder sú triedy v jazyku Java. Reťazec je široko používaný v programovaní v jazyku Java. Po vytvorení objektu String nie je možné ho zmeniť. Zakaždým, keď dôjde k zmene v reťazci, vytvorí sa nový reťazec. Aj keď ide o zreťazenie s existujúcim reťazcom, vytvorí sa nový reťazec. To spôsobuje plytvanie pamäťou. Triedy StringBuffer a StringBuilder v jazyku Java sa používajú na úpravu String. Kľúčový rozdiel medzi String, StringBuffer a StringBuilder v jazyku Java je v tom, že String je trieda na vytvorenie objektu typu String, ktorý je sekvenciou znakov, StringBuffer je trieda, ktorá sa používa na úpravu reťazcov, ktoré poskytujú bezpečnosť vlákien, a StringBuilder je trieda. trieda, ktorá sa používa na úpravu reťazcov, ktoré neposkytujú bezpečnosť vlákien.

Čo je reťazec v jazyku Java?

String trieda je v balíku java.lang. Zakaždým, keď programátor vytvorí reťazec, je to objekt typu String. Reťazce majú nemenný význam, akonáhle je objekt vytvorený, nemožno ho zmeniť. Objekty vytvorené pomocou obalových tried ako Integer, Byte, Float, Double sú tiež nemenné. Reťazcový literál je uzavretý v dvojitých úvodzovkách. napr. "Ahoj Svet". Zakaždým, keď je vytvorený reťazcový literál, Java Virtual Machine (JVM) skontroluje oblasť konštantných reťazcov. Ak reťazec existuje, vráti sa odkaz na oblasť konštantných reťazcov. Ak ide o nový reťazec, tento objekt sa vytvorí v skupine konštánt reťazcov.

Rozdiel medzi String StringBuffer a StringBuilder v Jave
Rozdiel medzi String StringBuffer a StringBuilder v Jave
Rozdiel medzi String StringBuffer a StringBuilder v Jave
Rozdiel medzi String StringBuffer a StringBuilder v Jave

Obrázok 01: Java program využívajúci String, StringBuffer a StringBuilder

Pozrite si časť kódu nižšie.

String s1=“Dobrý deň”;

s1=s1 + “Svet”;

System.out.println(s1);

V prvom príkaze s1 odkazuje na „Ahoj“v skupine konštánt reťazcov. V druhom vyhlásení JVM nemení existujúci reťazec. Namiesto toho vytvorí nový reťazec ako „Hello World“a s1 teraz odkazuje na tento nový reťazec. Opúšťajúci objekt „Ahoj“stále existuje v skupine konštantných reťazcov.

Ak existuje kód, ktorý je, String s1=”Dobrý deň”;

Reťazec s2=s1;

s1, s2 budú oba odkazovať na objekt String „Ahoj“.

Čo je StringBuffer v jazyku Java?

Trieda StringBuffer sa používa na zmenu objektov typu String. Preto je možné tieto objekty upravovať. StringBuffer definuje štyri konštruktory. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Pozrite si kód nižšie, StringBuffer s1=new StringBuffer(“Dobrý deň”);

s1.append(“Svet”);

System.out.println(s1);

Vo vyhlásení 1 sa s1 vzťahuje na objekt „Ahoj“v hromade. Objekt je meniteľný, pretože je vytvorený pomocou StringBuffer. Vo vyhlásení 2 je „World“pripojené k rovnakému objektu typu „Hello“String.

Reťazcové objekty vytvorené pomocou triedy StringBuffer môžu šetriť pamäť. StringBuffer poskytuje bezpečnosť vlákien, pretože dve vlákna nemôžu súčasne pristupovať k rovnakej metóde v triede StringBuffer. Bezpečnosť vlákien znižuje výkon StringBuffer. Trieda StringBuffer obsahuje metódy ako append(), insert(), reverse(), replace().

Čo je StringBuilder v jazyku Java?

Trieda StringBuilder sa používa na zmenu objektov typu String. Preto je možné tieto objekty upravovať. Funkcionalita je podobná StringBuffer, ale to neposkytuje bezpečnosť vlákien. StringBuilder má konštruktory ako StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Odkaz na kód uvedený nižšie.

StringBuilder s1=new StringBuilder(“Dobrý deň”);

s1.append(“Svet”);

System.out.println(s1);

Vo vyhlásení 1 sa s1 vzťahuje na objekt „Ahoj“v hromade. Objekt je meniteľný, pretože je vytvorený pomocou StringBuilder. Vo vyhlásení 2 je „World“pripojené k rovnakému objektu typu „Hello“String. Nevytvára sa úplne nový objekt String.

Reťazcové objekty vytvorené triedou StringBuilder môžu šetriť pamäť. Na rozdiel od StringBuffer, StringBuilder neposkytuje bezpečnosť vlákien, pretože dve vlákna môžu súčasne pristupovať k rovnakej metóde v triede StringBuilder. Trieda StringBuilder obsahuje metódy ako append(), insert(), reverse(), replace().

Aká je podobnosť medzi String, StringBuffer a StringBuilder v Jave?

Všetky sa dajú použiť na vytvorenie reťazcov

Aký je rozdiel medzi String StringBuffer a StringBuilder v Jave?

String vs StringBuffer vs StringBuilder

String Reťazec je trieda Java, ktorá sa používa na vytvorenie objektu typu String, čo je postupnosť znakov.
StringBuffer StringBuffer je trieda Java, ktorá sa používa na vytváranie objektov String, ktoré možno upravovať s bezpečnosťou vlákien.
StringBuilder StringBuilder je trieda, ktorá sa používa na vytváranie objektov typu reťazec, ktoré možno upravovať bez zabezpečenia vlákien.
Meniateľnosť
String Reťazec je nemenná trieda.
StringBuffer StringBuffer je meniteľná trieda.
StringBuilder StringBuilder je meniteľná trieda.
Bezpečnosť vlákna
String Stringové metódy sú bezpečné pre vlákna.
StringBuffer Metódy StringBuffer sú bezpečné a synchronizované.
StringBuilder Metódy StringBuildera nie sú bezpečné pre vlákna a nie sú synchronizované.
Výkon
String Reťazec je rýchly.
StringBuffer StringBuffer je pomalý.
StringBuilder StringBuilder je rýchly.

Zhrnutie – String vs StringBuffer vs StringBuilder v jazyku Java

String, StringBuffer a StringBuilder sa zdajú byť rovnaké, ale majú odlišný význam. Všetky tieto triedy sú Java. Rozdiel medzi String, StringBuffer a StringBuilder v jazyku Java je v tom, že String je trieda na vytvorenie objektu typu String, čo je množina znakov, StringBuffer je trieda, ktorá sa používa na úpravu reťazcov a poskytuje bezpečnosť vlákien, zatiaľ čo StringBuilder je trieda trieda, ktorá sa používa na úpravu reťazcov, ktorá neposkytuje bezpečnosť vlákien.

Stiahnite si súbor PDF String vs StringBuffer vs StringBuilder v jazyku Java

Verziu tohto článku si môžete stiahnuť vo formáte PDF a použiť ju na offline účely podľa citácie. Stiahnite si verziu PDF tu Rozdiel medzi String StringBuffer a StringBuilder v jazyku Java

Odporúča: