Skirtumas tarp „StringBuffer“ ir „StringBuilder“ „Java“

Pagrindinis skirtumas - stygos vs StringBuffer vs StringBuilder Java
 

„String“, „StringBuffer“ ir „String Builder“ yra „Java“ klasės. Stygos yra plačiai naudojamos „Java“ programavime. Sukūrus Styginių objektą, jų pakeisti neįmanoma. Kiekvieną kartą pakeitus eilutę, ji sukuria naują eilutę. Net jei tai susiejimas su esama styga, ji sukuria naują eilutę. Dėl to išeikvojama atmintis. „StringBuffer“ ir „StringBuilder“ klasės „Java“ naudojamos modifikuoti „String“. pagrindinis skirtumas tarp „String“, „StringBuffer“ ir „StringBuilder“ „Java“ yra tai „String“ yra klasė, skirta sukurti „String“ tipo objektą, kuris yra simbolių seka, „StringBuffer“ yra klasė, naudojama modifikuoti stygas, užtikrinančias siūlų saugumą, o „StringBuilder“ - klasė, naudojama modifikuoti stygas, kurios neužtikrina gijų saugos..

TURINYS

1. Apžvalga ir svarbiausias skirtumas
2. Kas yra „Java“ stygos
3. Kas yra „StringBuffer“ „Java“
4. Kas yra „StringBuilder“ „Java“
5. „StringBuffer“ ir „StringBuilder“ panašumai „Java“
6. Lyginimas šalia „String vs StringBuffer“ ir „StringBuilder“ „Java“ lentelėse
7. Santrauka

Kas yra „Java“ stygos?

Styginių klasė yra java.lang pakuotėje. Kiekvieną kartą, kai programuotojas sukuria eilutę, tai yra eilutės tipo objektas. Sukūrus objektą, stygos yra nekintamos reikšmės, jos pakeisti negalima. Objektai, sukurti naudojant „wrapper“ klases, tokias kaip „Integer“, „Byte“, „Float“, „Double“, taip pat yra nekintami. Eilės eilėraštis pridedamas dvigubomis kabutėmis. pvz. "Labas pasauli". Kiekvieną kartą, kai sukuriama eilutės pažodžiui, „Java“ virtualioji mašina (JVM) tikrina eilutės konstantą. Jei eilutė egzistuoja, grąžinama nuoroda į stygos pastovų fondą. Jei tai yra nauja eilutė, tas objektas yra sukuriamas eilutės nuolatiniame baseine.

01 paveikslas: „Java“ programa naudojant „String“, „StringBuffer“ ir „StringBuilder“

Žiūrėkite žemiau pateiktą kodo dalį.

Styga s1 = „Labas“;

s1 = s1 + „pasaulis“;

„System.out.println“ (s1);

Pirmajame sakinyje s1 nurodo „Sveiki“, esantį „String“ nuolatiniame baseine. Antrame sakinyje JVM nekeičia esamos eilutės. Vietoj to, jis sukuria naują eilutę kaip „Sveikas pasaulis“, o s1 dabar nurodo tą naują eilutę. Išeinantis „Sveiki“ objektas vis dar egzistuoja „String“ nuolatiniame baseine.

Jei yra kodas, kuris yra,

Styga s1 = „Labas“;

Stygos s2 = s1;

s1, s2 abu bus nukreipti į styginį objektą „Sveiki“.

Kas yra „StringBuffer“ „Java“?

„StringBuffer“ klasė naudojama norint padaryti „String“ objektus keičiamus. Todėl tuos objektus galima modifikuoti. „StringBuffer“ nusako keturis konstruktorius. „StringBuffer“ (), „StringBuffer“ (vidinis dydis), „StringBuffer“ (stygų stygos), „StringBuffer“ (charSequence [] ch)

Nurodykite kodą žemiau,

StringBuffer s1 = naujas „StringBuffer“ („Sveiki“);

s1.append („Pasaulis“);

„System.out.println“ (s1);

1 teiginyje s1 nurodo „sveiki“ objektą krūvoje. Objektas yra keičiamas, nes jis sukurtas naudojant „StringBuffer“. 2 sakinyje „Pasaulis“ pridedamas prie to paties „Hello“ stygos objekto.

Styginiai objektai, sukurti naudojant „StringBuffer“ klasę, gali taupyti atmintį. „StringBuffer“ suteikia gijų saugumą, nes du sriegiai negali pasiekti to paties metodo „StringBuffer“ klasėje vienu metu. Sriegio saugumas sumažėja „StringBuffer“ našumu. „StringBuffer“ klasėje yra tokie metodai kaip priedėlis (), įterpimas (), atvirkštinis (), pakeitimas ().

Kas yra „StringBuilder“ „Java“?

„StringBuilder“ klasė naudojama norint padaryti „String“ objektus keičiamus. Todėl tuos objektus galima modifikuoti. Funkcija yra panaši į „StringBuffer“, tačiau tai neužtikrina sriegio saugumo. „StringBuilder“ turi tokius konstruktorius kaip „StringBuilder“ (), „StringBuilder“ (vidinis dydis), „StringBuilder“ („String str“).

Nurodykite žemiau esantį kodą.

„StringBuilder s1“ = nauja „StringBuilder“ („Sveiki“);

s1.append („Pasaulis“);

„System.out.println“ (s1);

1 teiginyje s1 nurodo „sveiki“ objektą krūvoje. Objektas yra keičiamas, nes jis yra sukurtas naudojant „StringBuilder“. 2 sakinyje „Pasaulis“ pridedamas prie to paties „Hello“ stygos objekto. Nėra sukurtas visiškai naujas Styginių objektas.

„StringBuilder“ klasėje sukurti styginiai objektai gali sutaupyti atminties. Skirtingai nei „StringBuffer“, „StringBuilder“ neužtikrina sriegio saugumo, nes tuo pačiu metodu „StringBuilder“ klasėje vienu metu gali pasiekti du sriegiai. „StringBuilder“ klasėje yra tokie metodai kaip priedėlis (), įterpimas (), atvirkštinis (), pakeitimas ().

Koks yra „Java“ stygų, „StringBuffer“ ir „StringBuilder“ panašumas?

  • Visi gali būti naudojami kuriant stygas.

Kuo skiriasi „StringBuffer“ ir „StringBuilder“ „Java“?

„String vs StringBuffer“ prieš „StringBuilder“

Stygos Eilutė yra „Java“ klasė, naudojama sukurti „String“ tipo objektą, kuris yra simbolių seka.
„StringBuffer“ „StringBuffer“ yra „Java“ klasė, naudojama „String“ objektams kurti, kuriuos galima modifikuoti saugant sriegį.
„StringBuilder“ „StringBuilder“ yra klasė, naudojama kuriant eilutės objektus, kuriuos galima modifikuoti be saugaus sriegio.
Keičiamumas
Stygos Styga yra nekintama klasė.
„StringBuffer“ „StringBuffer“ yra keičiama klasė.
„StringBuilder“ „StringBuilder“ yra nekintanti klasė.
Sriegių sauga
Stygos Styginiai metodai yra saugūs siūlams.
„StringBuffer“ „StringBuffer“ metodai yra saugūs siūlams ir sinchronizuoti.
„StringBuilder“ „StringBuilder“ metodai nėra saugūs sriegiais ir nėra sinchronizuoti.
Spektaklis
Stygos Styga greitai.
„StringBuffer“ „StringBuffer“ veikia lėtai.
„StringBuilder“ „StringBuilder“ veikia greitai.

Santrauka - Styga vs StringBuffer vs StringBuilder Java 

Panašu, kad stygos, „StringBuffer“ ir „StringBuilder“ yra vienodos, tačiau jos turi skirtingas reikšmes. Visos šios yra „Java“ klasės. Skirtumas tarp „String“, „StringBuffer“ ir „StringBuilder“ „Java“ yra tas, kad „String“ yra klasė, skirta sukurti „String“ tipo objektą, kuris yra simbolių rinkinys, „StringBuffer“ yra klasė, naudojama modifikuoti stygas ir užtikrinti gijų saugumą, o „StringBuilder“ yra klasė, naudojama modifikuoti stygas, kurios neužtikrina sriegio saugumo.

Atsisiųskite „PDF“ PDF „String vs StringBuffer vs StringBuilder“ iš „Java“

Galite atsisiųsti šio straipsnio PDF versiją ir naudoti ją neprisijungus, kaip nurodyta citatos pastaboje. Atsisiųskite PDF versiją čia. Skirtumas tarp „StringBuffer“ ir „StringBuilder“ „Java“

Nuoroda:

1. „String vs StringBuffer vs StringBuilder“. „JournalDev“, 2017 m. Liepos 30 d. Galima rasti čia
2. „Java Hungry“. Skirtumas tarp stygų, „StringBuilder“ ir „StringBuffer“ klasių su pavyzdžiu: „Java“ Java alkanas. Galima rasti čia 
3.tutorialspoint.com. „Java“ stygos. Esmė. Galima rasti čia