Skirtumas tarp StringBuffer ir StringBuilder Java programoje

Turinys:

Skirtumas tarp StringBuffer ir StringBuilder Java programoje
Skirtumas tarp StringBuffer ir StringBuilder Java programoje

Video: Skirtumas tarp StringBuffer ir StringBuilder Java programoje

Video: Skirtumas tarp StringBuffer ir StringBuilder Java programoje
Video: Koks skirtumas tarp buhalterio ir finansų analitiko? 2024, Lapkritis
Anonim

Raktų skirtumas – String vs StringBuffer vs StringBuilder programoje Java

String, StringBuffer ir String Builder yra Java klasės. Styga yra plačiai naudojama Java programavimui. Sukūrus eilutės objektą, jų pakeisti nebeįmanoma. Kiekvieną kartą, kai įvyksta eilutės pakeitimas, ji sukuria naują eilutę. Net jei tai yra esamos eilutės sujungimas, sukuriama nauja eilutė. Tai sukelia atminties eikvojimą. StringBuffer ir StringBuilder klasės Java yra naudojamos modifikuoti String. Pagrindinis skirtumas tarp „String“, „StringBuffer“ir „StringBuilder“programoje „Java“yra tas, kad „String“yra klasė, skirta sukurti „String“tipo objektą, kuris yra simbolių seka, „StringBuffer“yra klasė, naudojama modifikuoti eilutes, užtikrinančias gijų saugumą, o „StringBuilder“yra klasė, kuri naudojama modifikuoti stygas, kurios neužtikrina gijų saugumo.

Kas yra eilutė Java?

Styginių klasė yra java.lang pakete. Kiekvieną kartą, kai programuotojas sukuria eilutę, tai yra String tipo objektas. Stygos yra nekintamos reikšmės, kai objektas yra sukurtas, jo negalima pakeisti. Objektai, sukurti naudojant įvyniojimo klases, pvz., Integer, Byte, Float, Double, taip pat yra nekintantys. Eilutės literalas yra įterptas į dvigubas kabutes. pvz. "Labas pasauli". Kiekvieną kartą, kai sukuriamas eilutės literalas, „Java“virtualioji mašina (JVM) patikrina eilutės konstantos telkinį. Jei eilutė egzistuoja, grąžinama nuoroda į eilutės konstantos telkinį. Jei tai nauja eilutė, tas objektas sukuriamas eilutės konstantų telkinyje.

Skirtumas tarp String StringBuffer ir StringBuilder Java
Skirtumas tarp String StringBuffer ir StringBuilder Java
Skirtumas tarp String StringBuffer ir StringBuilder Java
Skirtumas tarp String StringBuffer ir StringBuilder Java

01 pav.: Java programa naudojant String, StringBuffer ir StringBuilder

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

String s1="Sveiki";

s1=s1 + „Pasaulis“;

System.out.println(s1);

Pirmajame teiginyje s1 reiškia „Labas“eilutės konstantų telkinyje. Antrame teiginyje JVM nekeičia esamos eilutės. Vietoj to, ji sukuria naują eilutę kaip „Hello World“, o s1 dabar nurodo tą naują eilutę. Išeinantis „Hello“objektas vis dar egzistuoja eilutės konstantų telkinyje.

Jei yra kodas, kuris yra

String s1="Sveiki";

Eilutė s2=s1;

s1, s2 abu bus susiję su eilutės objektu „Labas“.

Kas yra StringBuffer Java?

StringBuffer klasė naudojama siekiant pakeisti String objektus. Todėl tuos objektus galima modifikuoti. StringBuffer apibrėžia keturis konstruktorius. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Žiūrėkite toliau pateiktą kodą, StringBuffer s1=new StringBuffer(“Labas“);

s1.append("Pasaulis");

System.out.println(s1);

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

Eilutės objektai, sukurti naudojant StringBuffer klasę, gali sutaupyti atminties. StringBuffer užtikrina gijų saugumą, nes dvi gijos negali pasiekti to paties metodo StringBuffer klasėje vienu metu. Siūlų sauga sumažina StringBuffer našumą. StringBuffer klasėje yra tokie metodai kaip append(), insert(), reverse(), pakeisti().

Kas yra StringBuilder programoje Java?

„StringBuilder“klasė naudojama norint pakeisti „String“objektus. Todėl tuos objektus galima modifikuoti. Funkcija panaši į StringBuffer, tačiau tai neužtikrina gijų saugumo. StringBuilder turi tokius konstruktorius kaip StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Žiūrėkite toliau pateiktą kodą.

StringBuilder s1=naujas StringBuilder("Labas");

s1.append("Pasaulis");

System.out.println(s1);

1 sakinyje s1 nurodo objektą „Labas“krūvoje. Objektas yra keičiamas, nes jis sukurtas naudojant StringBuilder. 2 sakinyje „Pasaulis“pridedamas prie to paties „Labas“eilutės objekto. Visiškai naujas String objektas nesukuriamas.

Eilutės objektai, sukurti naudojant StringBuilder klasę, gali sutaupyti atminties. Skirtingai nei StringBuffer, StringBuilder neužtikrina gijų saugos, nes dvi gijos gali pasiekti tą patį metodą StringBuilder klasėje vienu metu. „StringBuilder“klasėje yra tokie metodai kaip append(), insert(), reverse(), pakeisti().

Koks yra String, StringBuffer ir StringBuilder panašumas Java?

Viską galima naudoti kuriant eilutes

Kuo skiriasi String StringBuffer ir StringBuilder programoje Java?

String vs StringBuffer vs StringBuilder

Eilutė Eilutė yra „Java“klasė, naudojama sukurti String tipo objektą, kuris yra simbolių seka.
StringBuffer StringBuffer yra „Java“klasė, kuri naudojama eilutės objektams kurti, kuriuos galima modifikuoti naudojant gijų saugumą.
StringBuilder StringBuilder yra klasė, naudojama kurti eilučių objektus, kuriuos galima modifikuoti be gijos saugos.
Kintamumas
Eilutė Eilutė yra nekintanti klasė.
StringBuffer StringBuffer yra kintama klasė.
StringBuilder StringBuilder yra kintama klasė.
Siūlų sauga
Eilutė Stygos metodai yra saugūs.
StringBuffer StringBuffer metodai yra saugūs gijų ir sinchronizuojami.
StringBuilder StringBuilder metodai nėra saugūs ir nesinchronizuoti.
Performansas
Eilutė Eilutė greita.
StringBuffer StringBuffer yra lėtas.
StringBuilder StringBuilder yra greita.

Santrauka – String vs StringBuffer vs StringBuilder Java

String, StringBuffer ir StringBuilder atrodo tas pats, tačiau jų reikšmės skiriasi. Visa tai yra „Java“klasės. Skirtumas tarp „String“, „StringBuffer“ir „StringBuilder“programoje „Java“yra tas, kad „String“yra klasė, skirta sukurti „String“tipo objektą, kuris yra simbolių rinkinys, „StringBuffer“yra klasė, naudojama modifikuoti eilutes ir užtikrinti gijų saugumą, o „StringBuilder“yra klasė, kuri naudojama modifikuoti stygas, kurios neužtikrina gijų saugumo.

Atsisiųskite PDF String vs StringBuffer vs StringBuilder 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

Rekomenduojamas: