Ključna razlika – String proti StringBuffer proti StringBuilder v Javi
String, StringBuffer in String Builder so razredi v Javi. Niz se pogosto uporablja v programiranju Java. Ko je objekt niza ustvarjen, ga ni več mogoče spremeniti. Vsakič, ko pride do spremembe niza, ustvari nov niz. Tudi če je povezava z obstoječim nizom, ustvari nov niz. To povzroča izgubo spomina. Razreda StringBuffer in StringBuilder v Javi se uporabljata za spreminjanje niza. 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 zagotavlja varnost niti, StringBuilder pa je razred, ki se uporablja za spreminjanje nizov, ki ne zagotavljajo varnosti niti.
Kaj je niz v Javi?
Razred nizov je v paketu java.lang. Vsakič, ko programer ustvari niz, je to objekt vrste niz. Nizi so nespremenljivi, kar pomeni, da ko je predmet ustvarjen, ga ni mogoče spremeniti. Objekti, ustvarjeni z uporabo ovojnih razredov, kot so Integer, Byte, Float, Double, so prav tako nespremenljivi. Nizovni literal je v dvojnih narekovajih. npr. "Pozdravljen, svet". Vsakič, ko je ustvarjen nizovni literal, Java Virtual Machine (JVM) preveri nabor konstant String. Če niz obstaja, je vrnjen sklic na področje konstant String. Če gre za nov niz, se ta objekt ustvari v nizu konstant 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 nanaša na »Hello« v nizu konstant 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 nizu konstant String.
Če obstaja koda, Niz s1=”Pozdravljeni”;
Niz s2=s1;
s1, s2 se bosta oba sklicevala na objekt String »Hello«.
Kaj je StringBuffer v Javi?
Razred StringBuffer se uporablja za spreminjanje objektov String. Zato je te predmete mogoče spreminjati. 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 izjavi 1 se s1 nanaša na objekt »Hello« v kupu. Objekt je spremenljiv, ker je ustvarjen z uporabo StringBuffer. V stavku 2 je »World« pripet istemu predmetu »Hello« String.
Objekti nizov, ustvarjeni z razredom StringBuffer, lahko prihranijo pomnilnik. StringBuffer zagotavlja varnost niti, ker dve niti ne moreta istočasno 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 objektov String. Zato je te predmete mogoče spreminjati. Funkcionalnost je podobna funkciji StringBuffer, 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 izjavi 1 se s1 nanaša na objekt »Hello« v kupu. Objekt je spremenljiv, ker je ustvarjen s StringBuilderjem. V izjavi 2 je »World« pripet istemu objektu »Hello« String. Ni ustvarjenega popolnoma novega objekta String.
Objekti nizov, ustvarjeni z razredom StringBuilder, lahko prihranijo pomnilnik. Za razliko od StringBuffer, StringBuilder ne zagotavlja varnosti niti, ker lahko dve niti hkrati dostopajo 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 lahko uporabite za ustvarjanje nizov
Kakšna je razlika med String StringBuffer in StringBuilder v Javi?
String proti StringBuffer proti StringBuilder |
|
Niz | Niz je razred Java, ki se uporablja za ustvarjanje objekta tipa String, ki je zaporedje znakov. |
StringBuffer | StringBuffer je razred Java, ki se uporablja za ustvarjanje objektov String, ki jih je mogoče spreminjati z varnostjo niti. |
StringBuilder | StringBuilder je razred, ki se uporablja za ustvarjanje objektov nizov, ki jih je mogoče spreminjati brez varnosti niti. |
Spremenljivost | |
Niz | Niz je nespremenljiv razred. |
StringBuffer | StringBuffer je spremenljiv razred. |
StringBuilder | StringBuilder je spremenljiv razred. |
Varnost niti | |
Niz | Metode niza so varne niti. |
StringBuffer | Metode StringBufferja so nitno varne in sinhronizirane. |
StringBuilder | Metode StringBuilderja niso varne niti in niso sinhronizirane. |
Zmogljivost | |
Niz | Niz je hiter. |
StringBuffer | StringBuffer je počasen. |
StringBuilder | StringBuilder je hiter. |
Povzetek – String proti StringBuffer proti StringBuilder v Javi
String, StringBuffer in StringBuilder se zdijo enaki, vendar imajo različne pomene. Vse to so razredi Java. Razlika med String, StringBuffer in StringBuilder v Javi je ta, da je String razred za ustvarjanje objekta tipa String, ki je niz 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 PDF različico tega članka in jo uporabite za namene brez povezave v skladu z opombo o citiranju. Prenesite PDF različico tukaj. Razlika med String StringBuffer in StringBuilder v Javi