Erinevus StringBufferi ja StringBuilderi vahel Java-s

Peamine erinevus - keel vs StringBuffer vs StringBuilder Java-s
 

String, StringBuffer ja String Builder on Java klassid. Keelt kasutatakse Java programmeerimisel laialdaselt. Kui Stringi objekt on loodud, pole neid võimalik muuta. Iga kord, kui stringil muudatusi tehakse, loob see uue stringi. Isegi kui see on olemasoleva stringiga liitumine, loob see uue stringi. See põhjustab mälu raiskamist. Stringi muutmiseks kasutatakse Java klasse StringBuffer ja StringBuilder. võtme erinevus Stringi, StringBufferi ja StringBuilderi vahel Java on see String on klass, mille eesmärk on luua String-tüüpi objekt, mis on tähemärkide jada, StringBuffer on klass, mida kasutatakse stringide muutmiseks, mis pakub lõimede turvalisust, ja StringBuilder on klass, mida kasutatakse stringide muutmiseks, mis ei paku lõime turvalisust.

SISU

1. Ülevaade ja peamised erinevused
2. Mis on Java keeles keelpill?
3. Mis on Java StringBuffer?
4. Mis on Java StringBuilder?
5. StringBufferi ja StringBuilderi sarnasused Java-s
6. Võrdlus kõrvuti - String vs StringBuffer vs StringBuilder Java tabelina
7. Kokkuvõte

Mis on Java keel??

Keelpilliklass on pakis java.lang. Iga kord, kui programmeerija loob stringi, on see stringi tüüpi objekt. Stringid on muutumatu tähendusega, kui objekt on loodud, seda ei saa muuta. Objektid, mis on loodud ümbrisklasside, näiteks täisarv, bait, hõljumine, topelt, abil, on samuti muutumatud. String-literaal on suletud kahekordsetesse jutumärkidesse. nt. "Tere, Maailm". Iga kord, kui stringi täht luuakse, kontrollib Java virtuaalmasin (JVM) stringi konstantset kogumit. Kui string on olemas, tagastatakse viide stringi konstantsele kogumile. Kui see on uus string, luuakse see objekt stringi pidevas kogumis.

Joonis 01: Java-programm String, StringBufferi ja StringBuilderi abil

Vaadake allolevat kooditükki.

String s1 = “Tere”;

s1 = s1 + “maailm”;

System.out.println (s1);

Esimeses avalduses viitab s1 Stringi konstantse kogumi väärtusele “Tere”. Teises avalduses ei muuda JVM olemasolevat stringi. Selle asemel loob see uue stringi kui “Hello World” ja s1 viitab nüüd sellele uuele stringile. Väljuv „Tere” objekt eksisteerib endiselt Stringi konstantses basseinis.

Kui on kood, mis on,

String s1 = “Tere”;

Keel s2 = s1;

s1, s2 viitavad mõlemad stringi objektile “Tere”.

Mis on Java StringBuffer??

Klassi StringBuffer kasutatakse Stringi objektide muutmiseks. Seetõttu saab neid objekte muuta. StringBuffer määratleb neli konstruktorit. StringBuffer (), StringBuffer (int suurus), StringBuffer (String str), StringBuffer (charSequence [] ahel)

Vaadake allolevat koodi,

StringBuffer s1 = uus StringBuffer (“Tere”);

s1.append (“Maailm”);

System.out.println (s1);

Lauses 1 osutab s1 hunnikus asuvale objektile „Tere“. Objekt on muudetav, kuna see on loodud StringBufferi abil. 2. avalduses lisatakse samale keelteobjektile "Tere" "Maailm".

Klassi StringBuffer abil loodud stringiobjektid võivad mälu kokku hoida. StringBuffer tagab niidi turvalisuse, kuna kaks lõime ei pääse StringBufferi klassis samale meetodile juurde samaaegselt. Keermete ohutus vähendab StringBufferi jõudlust. StringBufferi klass sisaldab selliseid meetodeid nagu append (), insert (), reverse (), substit ().

Mis on Java StringBuilder??

Klassi StringBuilder kasutatakse Stringi objektide muutmiseks. Seetõttu saab neid objekte muuta. Funktsionaalsus on sarnane StringBufferiga, kuid see ei taga niidi turvalisust. StringBuilderil on sellised konstruktorid nagu StringBuilder (), StringBuilder (int suurus), StringBuilder (String str).

Vaadake allolevat koodi.

StringBuilder s1 = uus StringBuilder (“Tere”);

s1.append (“Maailm”);

System.out.println (s1);

Lauses 1 osutab s1 hunnikus asuvale objektile „Tere“. Objekt on muudetav, kuna see on loodud StringBuilderi abil. 2. avalduses lisatakse samale keelteobjektile "Tere" "Maailm". Täiesti uut Stringi objekti pole loodud.

Klassiga StringBuilder loodud stringiobjektid võivad mälu kokku hoida. Erinevalt StringBufferist ei paku StringBuilder niiditurvalisust, kuna kaks lõime saavad StringBuilderi klassis kasutada sama meetodit üheaegselt. StringBuilderi klass sisaldab selliseid meetodeid nagu append (), insert (), reverse (), substit ().

Milline on Java keelpillide StringBuffer ja StringBuilder sarnasus??

  • Kõike saab kasutada keelpillide loomiseks.

Mis vahe on StringBufferil ja StringBuilderil Java??

String vs StringBuffer vs StringBuilder

Keel String on Java klass, mida kasutatakse stringi tüüpi objekti loomiseks, mis on tähemärkide jada.
StringBuffer StringBuffer on Java klass, mida kasutatakse Stringi objektide loomiseks, mida saab niidi ohutusega muuta.
StringBuilder StringBuilder on klass, mida kasutatakse stringiobjektide loomiseks, mida saab muuta ilma niidi ohutuseta.
Mutuvus
Keel Keel on muutumatu klass.
StringBuffer StringBuffer on muutlik klass.
StringBuilder StringBuilder on muutlik klass.
Keerme ohutus
Keel Keelumismeetodid on niidikindlad.
StringBuffer StringBufferi meetodid on keermekindlad ja sünkroniseeritud.
StringBuilder StringBuilderi meetodid pole keermestatud ohutult ja neid ei sünkroonita.
Etendus
Keel Nöör on kiire.
StringBuffer StringBuffer on aeglane.
StringBuilder StringBuilder on kiire.

Kokkuvõte - keelpill vs StringBuffer vs StringBuilder Java-s 

String, StringBuffer ja StringBuilder näivad olevat samad, kuid neil on erinev tähendus. Kõik need on Java klassid. Erinevus Stringi, StringBufferi ja StringBuilderi vahel Java-s seisneb selles, et String on klass, mille eesmärk on luua Stringi tüüpi objekt, mis on tähemärkide komplekt, StringBuffer on klass, mida kasutatakse keelpillide muutmiseks ja lõimede turvalisuse tagamiseks, samas kui StringBuilder on klass, mida kasutatakse keelpillide modifitseerimiseks, mis ei taga niidi turvalisust.

Laadige Java alla PDF-fail String vs StringBuffer vs StringBuilder

Selle artikli PDF-versiooni saate alla laadida ja seda võrguühenduseta otstarbel kasutada tsitaatide märkuse kohaselt. Laadige alla siit PDF-versioon. Erinevus Java keeles StringBufferi ja StringBuilderi vahel

Viide:

1. “String vs StringBuffer vs StringBuilder.” JournalDev, 30. juuli 2017. Saadaval siin
2. “Java näljane”. Stringi, StringBuilderi ja StringBufferi klasside erinevus näitega: Java | Java näljane. Saadaval siin 
3.tutorialspoint.com. “Java stringid”. Mõte. Saadaval siin