
Palyginimo diagrama
Palyginimo pagrindas | String | StringBuffer |
---|---|---|
Pagrindinis | Styginių objekto ilgis yra fiksuotas. | StringBuffer ilgis gali būti padidintas. |
Modifikacija | Styginių objektas yra nekintamas. | StringBuffer objektas yra keičiantis. |
Spektaklis | Susiliejimo metu jis yra lėtesnis. | Tai greitesnė per susiejimą. |
Atmintis | Vartoja daugiau atminties. | Vartoja mažiau atminties. |
Saugojimas | Stygos pastovus baseinas. | Žuvo atmintis. |
Stygos apibrėžimas
„String“ yra „Java“ klasė. Klasės stygos objektas yra fiksuoto ilgio ir, svarbiausia, prisiminti, styginių klasės objektas yra „nekintamas“. Kai inicijuojate Styginių objektą, negalite dar kartą keisti šio objekto. Klasės eilutės objektas yra saugomas eilutės eilutėje.
Pirmiausia suprasime, kad, kurdami bet kokią eilutę; sukuriate tipo eilutės objektą. Styginių konstantos taip pat yra styginių objektai.
System.out.println („Sveiki, tai„ Teckpix “sprendimas);
Pirmiau pateiktame sakinyje eilutė „Hello this is Teckpix Solution“ yra eilutės konstanta.
Dabar leiskite mums suprasti eilutės objekto mutiškumą naudojant pavyzdį.
String str = nauja eilutė ("Teckpix"); str.concat („Sprendimas“); system.out.println (str); // produkcija Teckpix
Anksčiau pateiktu kodu bandžiau susieti dvi eilutes „Teckpix“ ir „Solution“. Kaip žinome, kai sukuriama eilutė, tai reiškia, kad sukuriamas String tipo tipas. Taigi, eilutė „Teckpix“ sukuria objektą, kurio nuoroda priskirta styginių objektui „str“. Be to, bandžiau susieti kitą eilutę „Sprendimas“ su eilute „Teckpix“, naudojant „Strat“ klasės „concat ()“ metodą.

StringBuffer apibrėžimas
Klasė „StringBuffer“ yra klasės „String“ klasė. StringBuffer klasė suteikia daugiau funkcijų styginiams. StringBuffer klasės objektas yra keičiantis, kuris gali būti pakeistas. StringBuffer objekto ilgis yra išaugęs. Jūs galite įterpti simbolius ar antraštes eilutės raidės viduryje, kuris yra priskirtas StringBuffer objektui arba jo pabaigoje. StringBuffer skiria erdvę 16 papildomų simbolių, kai nėra prašoma konkretaus ilgio.
Suprasime StringBuffer objekto tinkamumą naudojant pavyzdį:

StringBuffre Sb = naujas StringBuffer ("Teckpix"); Sb.append („Sprendimas“); system.out.println (Sb); // Išvesties „Teckpix“ sprendimas
Kaip žinome, StringBuffer objektas yra keičiantis. Metodas prideda () modifikuoja StringBuffer objektą Sb, į kurį iš pradžių priskiriamas objekto „Teckpix“ nuoroda. Metodo priedas () prideda naują eilutę „Sprendimas“ iki eilutės „Teckpix“ eilutės pabaigos. Dabar, kai atspausdinu objektą Sb, jis išspausdins modifikuotą styginių objektą „Teckpix Solutions“.
Pagrindinis skirtumas tarp eilutės ir StringBuffer
- Styginių objekto ilgis yra fiksuotas, bet, jei reikia, gali būti padidintas StringBuffer objekto ilgis.
- Styginių objektas yra nekintamas, ty jo objektas negali būti vėl skiriamas, o StringBuffer objektas yra keičiantis.
- Styginių objektas yra lėtesnis, o StringBuffer objektas yra greitesnis.
- Styginių objektas sunaudoja daugiau atminties, o StringBuffer objektai sunaudoja mažiau atminties.
- Styginių objektai yra saugomi pastoviame baseine, o StringBuffer objektai yra saugomi krūvos atmintyje.
Išvada:
StringBuffer objektai suteikia daugiau funkcijų styginiams, palyginti su klasės eilute. Todėl pageidautina dirbti su StringBuffer vietoj klasės eilutės.