String, StringBuffer in String Builder so razredi na Javi. String se pogosto uporablja v programiranju Java. Ko je ustvarjen objekt String, jih ni mogoče spremeniti. Vsakič, ko se struna spremeni, ustvari nov niz. Tudi če je povezava z obstoječim nizom, ustvari nov niz. To povzroči izgubo spomina. Za spreminjanje Stringa se uporabljajo razredi StringBuffer in StringBuilder v Javi. The ključna razlika med String, StringBuffer in StringBuilder na Javi je to String je razred za ustvarjanje predmeta tipa String, ki je zaporedje znakov, StringBuffer je razred, ki se uporablja za spreminjanje strun, ki zagotavlja varnost niti, StringBuilder pa razred, ki se uporablja za spreminjanje strun, ki ne zagotavljajo varnosti niti.
1. Pregled in ključne razlike
2. Kaj je niz v Javi
3. Kaj je StringBuffer v Javi
4. Kaj je StringBuilder v Javi
5. Podobnosti String StringBuffer in StringBuilder na Javi
6. Primerjava ob strani - String vs StringBuffer proti StringBuilder na Javi v tabeli
7. Povzetek
Razred niza je v paketu java.lang. Vsakič, ko programer ustvari niz, je predmet vrste String. Strune so nespremenljive, kar pomeni, da ko je predmet ustvarjen, ga ni mogoče spremeniti. Predmeti, ustvarjeni z uporabo razredov ovojev, kot so Integer, Byte, Float, Double, so prav tako nespremenljivi. Nizko besedilo je priloženo v dvojnih narekovajih. npr. "Pozdravljen, svet". Vsakič, ko je ustvarjen niz literal, Java navidezni stroj (JVM) preveri konstantno polje String. Če String obstaja, se vrne sklic na konstantni niz String. Če gre za nov niz, se ta predmet ustvari v konstantnem področju String.
Slika 01: Program Java z uporabo String, StringBuffer in StringBuilder
Glejte spodnji del kode.
String s1 = “Pozdravljeni”;
s1 = s1 + „svet“;
System.out.println (s1);
V prvi izjavi se s1 nanaša na "Hello" v konstantnem bazenu String. V drugi izjavi 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 bazenu String.
Če obstaja koda, ki je,
String s1 = “Pozdravljeni”;
Niz s2 = s1;
s1, s2 se bosta sklicevala na String objekt "Hello".
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 stavki 1 se s1 v množici nanaša na predmet "Hello". Predmet je spremenljiv, ker je ustvarjen s programom StringBuffer. V stavku 2 je "World" dodan istemu nizu "Hello".
String predmeti, ustvarjeni s razredom StringBuffer, lahko prihranijo pomnilnik. StringBuffer zagotavlja varnost niti, ker dve niti ne moreta dostopati do iste metode v razredu StringBuffer hkrati. Zmanjšanje varnosti navojev Učinkovitost StringBufferja. Razred StringBuffer vsebuje metode, kot so dodaj (), vstavi (), obrni (), zamenjaj ().
Razred StringBuilder se uporablja za spreminjanje predmetov String. Zato je mogoče te predmete spremeniti. Funkcionalnost je podobna kot StringBuffer, vendar to ne zagotavlja varnosti niti. StringBuilder ima konstruktorje, kot so StringBuilder (), StringBuilder (int size), StringBuilder (String str).
Glej spodnjo kodo.
StringBuilder s1 = nov StringBuilder ("Pozdravljeni");
s1.append ("Svet");
System.out.println (s1);
V stavki 1 se s1 v množici nanaša na predmet "Hello". Predmet je spremenljiv, ker je ustvarjen s programom StringBuilder. V stavku 2 je "World" dodan istemu nizu "Hello". Ni ustvarjen popolnoma nov objekt String.
String predmeti, ustvarjeni s razredom StringBuilder, lahko prihranijo spomin. Za razliko od StringBuffer, StringBuilder ne zagotavlja varnosti niti, ker lahko dva niti hkrati dostopata do iste metode v razredu StringBuilder. Razred StringBuilder vsebuje metode, kot so dodaj (), vstavi (), obrni (), zamenjaj ().
String proti StringBuffer proti StringBuilder | |
Vrvica | Niz je razred Java, ki se uporablja za ustvarjanje predmeta tipa String, ki je zaporedje znakov. |
StringBuffer | StringBuffer je razred Java, ki se uporablja za ustvarjanje String predmetov, ki jih je mogoče spremeniti z varnostjo niti. |
StringBuilder | StringBuilder je razred, ki se uporablja za ustvarjanje nizkih 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 navojev | |
Vrvica | Metode string so varne z nitmi. |
StringBuffer | Metode StringBuffer so varne z nitmi in so sinhronizirane. |
StringBuilder | Metode StringBuilder niso varne z navojem in niso sinhronizirane. |
Izvedba | |
Vrvica | Niz je hiter. |
StringBuffer | StringBuffer je počasen. |
StringBuilder | StringBuilder je hiter. |
String, StringBuffer in StringBuilder se zdijo enaki, vendar imajo različne pomene. Vse to so razredi Java. Razlika med String, StringBuffer in StringBuilder na Javi je ta, da je String razred za ustvarjanje predmeta tipa String, ki je niz znakov, StringBuffer je razred, ki se uporablja za spreminjanje strun in zagotavljanje varnosti niti, medtem ko je StringBuilder a razreda, ki se uporablja za spreminjanje strun, ki ne zagotavlja varnosti niti.
Lahko prenesete PDF različico tega članka in jo uporabljate za namene brez povezave, kot je navedeno v navodilu. Prenesite PDF različico tukaj Razlika med String StringBuffer in StringBuilder na Javi
1. "String proti StringBuffer proti StringBuilder." JournalDev, 30. julij 2017. Dostopno tukaj
2. "Java lačna." Razlika med razredi String, StringBuilder in StringBuffer s primerom: Java | Java lačna. Na voljo tukaj
3.tutorialspoint.com. "Strune Java." Točka. Na voljo tukaj