Erinevus Java StringBufferi ja StringBuilderi vahel

Sisukord:

Erinevus Java StringBufferi ja StringBuilderi vahel
Erinevus Java StringBufferi ja StringBuilderi vahel

Video: Erinevus Java StringBufferi ja StringBuilderi vahel

Video: Erinevus Java StringBufferi ja StringBuilderi vahel
Video: Łączenie Stringów w Javie: Konkatenacja vs StringBuilder vs StringBuffer. Jak to działa? 2024, Juuli
Anonim

Võtmete erinevus – String vs StringBuffer vs StringBuilder Javas

String, StringBuffer ja String Builder on Java klassid. Stringi kasutatakse Java programmeerimises laialdaselt. Kui stringi objekt on loodud, pole neid võimalik muuta. Iga kord, kui stringi muudetakse, loob see uue stringi. Isegi kui see on konkatenatsioon olemasoleva stringiga, loob see uue stringi. See põhjustab mälu raiskamist. Stringi muutmiseks kasutatakse Java klasse StringBuffer ja StringBuilder. Peamine erinevus Stringi, StringBufferi ja StringBuilderi vahel Javas on see, et String on klass, mis loob objekti tüüpi String, mis on tähemärkide jada, StringBuffer on klass, mida kasutatakse stringide muutmiseks, mis tagab lõime turvalisuse, ja StringBuilder on klass, mida kasutatakse stringide muutmiseks, mis ei paku keerme turvalisust.

Mis on Javas String?

Stringiklass on paketis java.lang. Iga kord, kui programmeerija loob stringi, on see String tüüpi objekt. Stringid on muutumatu tähendusega, kui objekt on loodud, ei saa seda muuta. Muutumatud on ka objektid, mis on loodud ümbrisklassidega, nagu Integer, Byte, Float, Double. Stringliteraal on ümbritsetud jutumärkidega. nt. "Tere, Maailm". Iga kord, kui stringi literaal luuakse, kontrollib Java virtuaalmasin (JVM) stringi konstantide kogumit. Kui string on olemas, tagastatakse viide stringi konstandikogumile. Kui see on uus string, luuakse see objekt stringi konstantide kogumisse.

String StringBufferi ja StringBuilderi erinevus Javas
String StringBufferi ja StringBuilderi erinevus Javas
String StringBufferi ja StringBuilderi erinevus Javas
String StringBufferi ja StringBuilderi erinevus Javas

Joonis 01: Java programm, mis kasutab Stringi, StringBufferit ja StringBuilderit

Vaadake allolevat koodilõiku.

String s1="Tere";

s1=s1 + "maailm";

System.out.println(s1);

Esimeses lauses viitab s1 "Tere" stringi konstandikogumis. Teises avalduses ei muuda JVM olemasolevat stringi. Selle asemel loob see uue stringi nimega "Tere maailm" ja s1 viitab nüüd sellele uuele stringile. Väljuv objekt "Tere" on stringi konstantide kogumis endiselt olemas.

Kui on olemas kood, mis on

String s1="Tere";

String s2=s1;

s1, s2 viitavad mõlemad stringobjektile "Tere".

Mis on Javas StringBuffer?

StringBuffer klassi kasutatakse String-objektide muutmiseks. Seetõttu saab neid objekte muuta. StringBuffer määratleb neli konstruktorit. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Vaadake allolevat koodi, StringBuffer s1=new StringBuffer(“Tere”);

s1.append(“Maailm”);

System.out.println(s1);

Avalduses 1 viitab s1 kuhjas olevale "Tere" objektile. Objekt on muudetav, kuna see on loodud StringBufferi abil. Lauses 2 lisatakse "Maailm" samale "Tere" stringobjektile.

StringBuffer klassiga loodud stringobjektid võivad säästa mälu. StringBuffer pakub lõime turvalisust, kuna kaks lõime ei pääse samaaegselt samale StringBuffer klassi meetodile juurde. Lõime turvalisus vähendab StringBufferi jõudlust. Klass StringBuffer sisaldab selliseid meetodeid nagu append(), insert(), reverse(), asenda().

Mis on StringBuilder Javas?

StringBuilderi klassi kasutatakse String-objektide muutmiseks. Seetõttu saab neid objekte muuta. Funktsionaalsus on sarnane StringBufferiga, kuid see ei taga lõime turvalisust. StringBuilderil on sellised konstruktorid nagu StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Vaadake allolevat koodi.

StringBuilder s1=uus StringBuilder("Tere");

s1.append(“Maailm”);

System.out.println(s1);

Avalduses 1 viitab s1 kuhjas olevale "Tere" objektile. Objekt on muudetav, kuna see on loodud StringBuilderi abil. Lauses 2 lisatakse "Maailm" samale "Tere" stringobjektile. Täiesti uut String-objekti ei looda.

StringBuilder klassiga loodud stringobjektid võivad säästa mälu. Erinev alt StringBufferist ei paku StringBuilder lõime turvalisust, kuna kaks lõime pääsevad samaaegselt juurde samale meetodile klassis StringBuilder. Klass StringBuilder sisaldab selliseid meetodeid nagu append(), insert(), reverse(), asenda().

Milline on Java stringi, StringBufferi ja StringBuilderi sarnasus?

Kõike saab kasutada stringide loomiseks

Mis vahe on Java StringBufferil ja StringBuilderil?

String vs StringBuffer vs StringBuilder

String String on Java klass, mida kasutatakse String tüüpi objekti loomiseks, mis on tähemärkide jada.
StringBuffer StringBuffer on Java klass, mida kasutatakse stringobjektide loomiseks, mida saab lõime turvalisusega muuta.
StringBuilder StringBuilder on klass, mida kasutatakse stringiobjektide loomiseks, mida saab muuta ilma lõime turvalisuseta.
Mutability
String String on muutumatu klass.
StringBuffer StringBuffer on muutuv klass.
StringBuilder StringBuilder on muutuv klass.
Keerme ohutus
String Stringi meetodid on lõimekindlad.
StringBuffer StringBufferi meetodid on lõimekindlad ja sünkroonitud.
StringBuilder StringBuilderi meetodid ei ole turvaliselt keermestatud ega sünkroonimata.
Esitus
String String on kiire.
StringBuffer StringBuffer on aeglane.
StringBuilder StringBuilder on kiire.

Kokkuvõte – String vs StringBuffer vs StringBuilder Javas

String, StringBuffer ja StringBuilder näivad olevat samad, kuid neil on erinev tähendus. Kõik need on Java klassid. Stringi, StringBufferi ja StringBuilderi erinevus Javas seisneb selles, et String on klass String-tüüpi objekti loomiseks, mis on tähemärkide kogum, StringBuffer on klass, mida kasutatakse stringide muutmiseks ja lõime turvalisuse tagamiseks, samas kui StringBuilder on klass, mida kasutatakse stringide muutmiseks, mis ei taga lõime turvalisust.

Laadige Javas alla PDF String vs StringBuffer vs StringBuilder

Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Laadige PDF-versioon alla siit. Erinevused stringi StringBufferi ja StringBuilderi vahel Javas

Soovitan: