Rozdiel medzi reťazcom StringBuffer a StringBuilder v Jave

Kľúčový rozdiel - reťazec vs StringBuffer vs StringBuilder v Jave
 

String, StringBuffer a String Builder sú triedy v jazyku Java. String je široko používaný v programovaní Java. Po vytvorení objektu String nie je možné ich zmeniť. Zakaždým, keď dôjde k zmene reťazca, vytvorí sa nový reťazec. Aj keď ide o zreťazenie existujúceho reťazca, vytvorí nový reťazec. To spôsobuje stratu pamäti. Triedy StringBuffer a StringBuilder v Java sa používajú na úpravu reťazca. kľúčový rozdiel medzi reťazcom String, StringBuffer a StringBuilder v Java to tak je 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ákna, a StringBuilder je trieda, ktorá sa používa na úpravu reťazcov, ktoré nezabezpečujú bezpečnosť vlákien..

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je reťazec v jazyku Java
3. Čo je StringBuffer v Jave
4. Čo je StringBuilder v Jave
5. Podobnosti medzi reťazcami StringBuffer a StringBuilder v Jave
6. Porovnanie vedľa seba - String vs StringBuffer vs StringBuilder v Jave v tabuľkovej forme
7. Zhrnutie

Čo je reťazec v jazyku Java?

Trieda String je v balíku java.lang. Zakaždým, keď programátor vytvorí String, je to objekt typu String. Reťazce sú nemenný význam, akonáhle je objekt vytvorený, nie je možné ho zmeniť. Objekty vytvorené pomocou tried obálok ako Integer, Byte, Float, Double sú tiež nemenné. Reťazec literálu je uzavretý v úvodzovkách. napr. „Ahoj svet“. Pri každom vytvorení reťazcového literálu skontroluje Java Virtual Machine (JVM) reťazec konštánt String. Ak String existuje, vráti sa odkaz na konštantnú oblasť String. Ak ide o nový reťazec, tento objekt sa vytvorí v oblasti konštantných reťazcov.

Obrázok 01: Program Java pomocou String, StringBuffer a StringBuilder

Pozrite si nižšie uvedený kód.

String s1 = „Ahoj“;

s1 = s1 + „svet“;

System.out.println (s1);

V prvom príkaze s1 odkazuje na „Ahoj“ v skupine konštantných reťazcov. V druhom tvrdení nemení JVM existujúce String. Namiesto toho vytvára nový reťazec ako „Ahoj svet“ a s1 teraz odkazuje na tento nový reťazec. Ukončujúci objekt „Hello“ stále existuje v oblasti konštantných reťazcov.

Ak existuje kód, ktorý je,

String s1 = „Ahoj“;

Reťazec s2 = s1;

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

Čo je StringBuffer v Jave?

Trieda StringBuffer sa používa na to, aby objekty String boli zameniteľné. Tieto objekty sa preto dajú modifikovať. StringBuffer definuje štyroch konštruktorov. StringBuffer (), StringBuffer (int size), StringBuffer (String str), StringBuffer (charSequence [] ch)

Postupujte podľa nižšie uvedeného kódu,

StringBuffer s1 = nový StringBuffer („Ahoj“);

s1.append ( "World");

System.out.println (s1);

Vo výpise 1 s1 odkazuje na objekt „Hello“ v halde. Objekt je zameniteľný, pretože je vytvorený pomocou StringBuffer. Vo vyhlásení 2 je „Svet“ pripojený k rovnakému objektu „Ahoj“ String.

Objekty reťazca vytvorené pomocou triedy StringBuffer môžu šetriť pamäť. StringBuffer poskytuje bezpečnosť vlákien, pretože dva vlákna nemôžu mať prístup k rovnakej metóde v triede StringBuffer súčasne. Zníženie bezpečnosti nití Výkon StringBuffer. Trieda StringBuffer obsahuje metódy ako append (), insert (), reverse (), nahradenie ().

Čo je StringBuilder v Jave?

Trieda StringBuilder sa používa na to, aby objekty String boli zameniteľné. Tieto objekty sa preto dajú modifikovať. Funkčnosť je podobná ako StringBuffer, ale nezabezpečuje to vlákno. StringBuilder má konštruktory ako StringBuilder (), StringBuilder (int size), StringBuilder (String str).

Pozrite si nasledujúci kód.

StringBuilder s1 = nový StringBuilder („Ahoj“);

s1.append ( "World");

System.out.println (s1);

Vo výpise 1 s1 odkazuje na objekt „Hello“ v halde. Objekt je zameniteľný, pretože je vytvorený pomocou StringBuilder. Vo vyhlásení 2 je „Svet“ pripojený k rovnakému objektu „Ahoj“ String. Neexistuje žiadne vytvorenie úplne nového objektu String.

Objekty reťazca vytvorené pomocou triedy StringBuilder môžu šetriť pamäť. Na rozdiel od StringBuffer, StringBuilder nezabezpečuje bezpečnosť vlákien, pretože dva vlákna môžu mať prístup k rovnakej metóde v triede StringBuilder súčasne. Trieda StringBuilder obsahuje metódy ako append (), insert (), reverse (), nahradenie ().

Aká je podobnosť medzi reťazcami StringBuffer a StringBuilder v Jave?

  • Všetky môžu byť použité na vytvorenie reťazcov.

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

String vs StringBuffer vs StringBuilder

povrázok 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é je možné modifikovať bezpečnosťou vlákna.
StringBuilder StringBuilder je trieda, ktorá sa používa na vytváranie reťazcových objektov, ktoré je možné upravovať bez bezpečnosti vlákna.
premenlivosť
povrázok Reťazec je nemenná trieda.
StringBuffer StringBuffer je premenlivá trieda.
StringBuilder StringBuilder je premenlivá trieda.
Bezpečnosť vlákna
povrázok Metódy String sú bezpečné pre vlákna.
StringBuffer Metódy StringBuffer sú bezpečné pre vlákna a synchronizované.
StringBuilder Metódy StringBuilder nie sú bezpečné pomocou vlákien a nie sú synchronizované.
výkon
povrázok Reťazec je rýchly.
StringBuffer StringBuffer je pomalý.
StringBuilder StringBuilder je rýchly.

Zhrnutie - String vs StringBuffer vs StringBuilder v Jave 

String, StringBuffer a StringBuilder sa zdajú byť rovnaké, ale majú rôzne významy. To všetko sú triedy Java. Rozdiel medzi reťazcami String, StringBuffer a StringBuilder v jazyku Java spočíva 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 zaistenie bezpečnosti vlákna, zatiaľ čo StringBuilder je trieda, ktorá sa používa na úpravu reťazcov, ktoré nezabezpečujú bezpečnosť vlákna.

Stiahnite si súbor PDF String vs StringBuffer vs StringBuilder v Jave

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

referencie:

1. „String vs StringBuffer vs StringBuilder.“ JournalDev, 30. júla 2017. K dispozícii tu
2. „Hlad Java.“ Rozdiel medzi triedami String, StringBuilder a StringBuffer s príkladom: Java | Hladný jazyk Java. K dispozícii tu 
3.tutorialspoint.com. „Reťazce Java.“ Bod. K dispozícii tu