Ključna razlika - String vs StringBuffer vs StringBuilder v Javi
String, StringBuffer in String Builder so razredi v Javi. String se pogosto uporablja pri programiranju Java. Ko je predmet String ustvarjen, ga ni več mogoče spremeniti. Vsakič, ko pride do spremembe niza, ustvari nov niz. Tudi če gre za združitev obstoječega niza, ustvari nov niz. To povzroči izgubo spomina. Razredi StringBuffer in StringBuilder v Javi se uporabljajo za spreminjanje Stringa. Ključna razlika med String, StringBuffer in StringBuilder v Javi je, da je String razred za ustvarjanje predmeta tipa String, ki je zaporedje znakov, StringBuffer je razred, ki se uporablja za spreminjanje nizov, ki zagotavljajo varnost niti, in StringBuilder je razred, ki se uporablja za spreminjanje nizov, ki ne zagotavljajo varnosti niti.
VSEBINA
1. Pregled in razlika v ključih
2. Kaj je String v Javi
3. Kaj je StringBuffer v Javi
4. Kaj je StringBuilder v Javi
5. Podobnosti med String StringBuffer in StringBuilder v Javi
6. Vzporedna primerjava - String vs StringBuffer vs StringBuilder v Java v tabelarni obliki
7. Povzetek
Kaj je String v Javi?
Razred string je v paketu java.lang. Vsakič, ko programer ustvari niz, je predmet tipa String. Strune imajo nespremenljiv pomen, ko je objekt enkrat ustvarjen, ga ni več mogoče spremeniti. Predmeti, ustvarjeni z uporabo ovojnih razredov, kot so Integer, Byte, Float, Double, so prav tako nespremenljivi. Dobesedni niz je zaprt v dvojnih narekovajih. npr. "Hello World". Vsakič, ko ustvari niz literala, navidezni stroj Java (JVM) preveri konstantno področje String. Če niz obstaja, se vrne sklic na konstantno področje niza. Če gre za nov niz, se ta objekt ustvari v konstantnem področju String.
Slika 01: Program Java z uporabo String, StringBuffer in StringBuilder
Glejte spodnji del kode.
Niz s1 = "Pozdravljeni";
s1 = s1 + "Svet";
System.out.println (s1);
V prvem stavku se s1 sklicuje na »Hello« v konstantnem področju String. V drugem stavku JVM ne spremeni obstoječega niza. Namesto tega ustvari nov niz kot »Hello World« in s1 se zdaj sklicuje na ta novi niz. Izhodni objekt »Hello« še vedno obstaja v konstantnem področju String.
Če obstaja koda, ki je, String s1 = "Pozdravljeni";
Niz s2 = s1;
s1, s2 se bosta nanašali na objekt String »Hello«.
Kaj je StringBuffer v Javi?
Razred StringBuffer se uporablja za spreminjanje predmetov String. Zato je mogoče te predmete spremeniti. StringBuffer definira štiri konstruktorje. StringBuffer (), StringBuffer (int size), StringBuffer (String str), StringBuffer (charSequence ch)
Glejte spodnjo kodo, StringBuffer s1 = nov StringBuffer (“Pozdravljeni”);
s1.append ("Svet");
System.out.println (s1);
V stavku 1 se s1 nanaša na objekt »Hello« na kopici. Predmet je spremenljiv, ker je ustvarjen z uporabo StringBuffer. V stavku 2 je »Svet« dodan istemu nizu »Hello«.
String predmeti, ustvarjeni s razredom StringBuffer, lahko prihranijo pomnilnik. StringBuffer zagotavlja varnost niti, ker dve niti ne moreta hkrati dostopati do iste metode v razredu StringBuffer. Varnost niti zmanjša zmogljivost StringBufferja. Razred StringBuffer vsebuje metode, kot so append (), insert (), reverse (), replace ().
Kaj je StringBuilder v Javi?
Razred StringBuilder se uporablja za spreminjanje predmetov String. Zato je mogoče te predmete spremeniti. Funkcionalnost je podobna StringBufferju, vendar to ne zagotavlja varnosti niti. StringBuilder ima konstruktorje, kot so StringBuilder (), StringBuilder (int size), StringBuilder (String str).
Glejte spodnjo kodo.
StringBuilder s1 = nov StringBuilder (“Pozdravljeni”);
s1.append ("Svet");
System.out.println (s1);
V stavku 1 se s1 nanaša na objekt »Hello« na kopici. Predmet je spremenljiv, ker je ustvarjen z uporabo StringBuilder. V stavku 2 je »Svet« dodan istemu nizu »Hello«. Popolnoma novega predmeta String ni mogoče ustvariti.
String predmeti, ustvarjeni s razredom StringBuilder, lahko prihranijo pomnilnik. Za razliko od StringBuffer, StringBuilder ne zagotavlja varnosti niti, ker lahko dve niti istočasno dostopata do iste metode v razredu StringBuilder. Razred StringBuilder vsebuje metode, kot so append (), insert (), reverse (), replace ().
Kakšna je podobnost med String, StringBuffer in StringBuilder v Javi?
Vse je mogoče uporabiti za ustvarjanje nizov
Kakšna je razlika med String StringBuffer in StringBuilder v Javi?
Diff Article Sredina pred mizo
String vs StringBuffer vs StringBuilder |
|
Vrvica | Niz je razred Java, ki se uporablja za ustvarjanje predmeta vrste String, ki je zaporedje znakov. |
StringBuffer | StringBuffer je razred Java, ki se uporablja za ustvarjanje predmetov String, ki jih je mogoče spremeniti z varnostjo niti. |
StringBuilder | StringBuilder je razred, ki se uporablja za ustvarjanje nizovnih predmetov, ki jih je mogoče spremeniti brez varnosti niti. |
Spremenljivost | |
Vrvica | Niz je nespremenljiv razred. |
StringBuffer | StringBuffer je spremenljiv razred. |
StringBuilder | StringBuilder je spremenljiv razred. |
Varnost niti | |
Vrvica | Metode niza so varne za nit. |
StringBuffer | Metode StringBufferja so varne pred nitmi in sinhronizirane. |
StringBuilder | Metode StringBuilder niso varne z navoji in niso sinhronizirane. |
Izvedba | |
Vrvica | Niz je hiter. |
StringBuffer | StringBuffer je počasen. |
StringBuilder | StringBuilder je hiter. |
Povzetek - String vs StringBuffer vs StringBuilder v Javi
String, StringBuffer in StringBuilder so videti enaki, vendar imajo različne pomene. Vse to so razredi Java. Razlika med String, StringBuffer in StringBuilder v Javi je v tem, da je String razred za ustvarjanje predmeta vrste String, ki je nabor znakov, StringBuffer je razred, ki se uporablja za spreminjanje nizov in zagotavljanje varnosti niti, medtem ko je StringBuilder razred, ki se uporablja za spreminjanje nizov, ki ne zagotavljajo varnosti niti.
Prenesite PDF String vs StringBuffer vs StringBuilder v Javi
Lahko prenesete različico tega članka v obliki PDF in jo uporabite za uporabo brez povezave, kot je navedeno v opombi. Prosimo, prenesite različico PDF tukaj Razlika med StringBuffer in StringBuilder v Javi