String, StringBuffer i String Builder su klase na Javi. Niz se široko koristi u Java programiranju. Jednom kada se stvori objekt String-a, nije ih moguće promijeniti. Svaki put kada se dogodi promjena strune, stvara novi niz. Čak i ako je pridruživanje postojećem nizu, on stvara novi niz. To uzrokuje rasipanje memorije. StringBuffer i StringBuilder klase u Javi koriste se za modificiranje Stringa. ključna razlika između String, StringBuffer i StringBuilder u Javi je to String je klasa za kreiranje objekta tipa String koji je niz znakova, StringBuffer je klasa koja se koristi za izmjenu stringova koji osiguravaju sigurnost niti, a StringBuilder je klasa koja se koristi za izmjenu stringova koji ne pružaju sigurnost niti.
1. Pregled i ključne razlike
2. Što je string u Javi
3. Što je StringBuffer u Javi
4. Što je StringBuilder u Javi
5. Sličnosti između String StringBuffer i StringBuilder u Javi
6. Usporedna usporedba - String vs StringBuffer vs StringBuilder na Javi u tabličnom obliku
7. Sažetak
Klasa strune nalazi se u paketu java.lang. Svaki put kada programer stvori string, to je objekt vrste String. Nizovi su nepromjenjivi značenje jednom kada je objekt kreiran, on se ne može promijeniti. Objekti stvoreni pomoću klasa omota kao što su Integer, Byte, Float, Double također su nepromjenjivi. Pismeni niz priložen je dvostrukim navodnicima. npr "Pozdrav svijete". Svaki put kada se stvori doslovni niz, Java virtualni stroj (JVM) provjerava stalni niz Stringa. Ako string postoji, vraća se referenca na konstantni niz String. Ako se radi o novom Stringu, taj će se objekt stvoriti u stalnom nizu String.
Slika 01: Java program koji koristi String, StringBuffer i StringBuilder
Pogledajte donji dio koda.
String s1 = "Pozdrav";
s1 = s1 + "Svijet";
Sustava (s1);
U prvoj se izjavi s1 odnosi na "Pozdrav" u konstantnom bazenu Stringa. U drugoj izjavi JVM ne mijenja postojeći niz. Umjesto toga, stvara novi niz kao "Hello World", a s1 se sada odnosi na taj novi niz. Izlazni objekt "Hello" i dalje postoji u konstantnom bazenu String.
Ako postoji kod koji je,
String s1 = "Pozdrav";
Niz s2 = s1;
s1, s2 oba će se odnositi na String objekt "Hello".
StringBuffer klasa koristi se za stvaranje String objekata koji se mogu mijenjati. Stoga se ti predmeti mogu mijenjati. StringBuffer definira četiri konstruktora. StringBuffer (), StringBuffer (int veličina), StringBuffer (String str), StringBuffer (charSequence [] ch)
Pogledajte kod ispod,
StringBuffer s1 = novi StringBuffer ("Pozdrav");
s1.append ( „World”);
Sustava (s1);
U izjavi 1, s1 se u gomili odnosi na objekt "Hello". Objekt je mutabilan jer je stvoren pomoću StringBuffer-a. U izjavi 2, "World" se dodaje istom objektu "Hello".
String objekti stvoreni pomoću klase StringBuffer mogu uštedjeti memoriju. StringBuffer pruža sigurnost niti jer dvije niti ne mogu istovremeno pristupiti istoj metodi u StringBuffer klasi. Sigurnost navoja smanjuje performanse StringBuffer-a. Klasa StringBuffer sadrži metode poput dodavanja (), umetanja (), obrnutog (), zamjene ().
StringBuilder klasa koristi se za izradu String objekata koji se mogu mijenjati. Stoga se ti predmeti mogu mijenjati. Funkcionalnost je slična StringBuffer, ali to ne osigurava sigurnost niti. StringBuilder ima konstruktore poput StringBuilder (), StringBuilder (int size), StringBuilder (String str).
Pogledajte donji kôd.
StringBuilder s1 = novi StringBuilder ("Pozdrav");
s1.append ( „World”);
Sustava (s1);
U izjavi 1, s1 se u gomili odnosi na objekt "Hello". Objekt je mutabilan jer je stvoren pomoću StringBuilder. U izjavi 2, "World" se dodaje istom objektu "Hello". Ne postoji stvaranje potpuno novog String objekta.
String objekti stvoreni pomoću klase StringBuilder mogu uštedjeti memoriju. Za razliku od StringBuffer, StringBuilder ne osigurava sigurnost niti jer dvije niti mogu istovremeno pristupiti istoj metodi u klasi StringBuilder. Klasa StringBuilder sadrži metode poput dodavanja (), umetanja (), obrnutog (), zamjene ().
String vs StringBuffer vs StringBuilder | |
Niz | Niz je klasa Java koja se koristi za stvaranje objekta vrste String koji je niz znakova. |
StringBuffer | StringBuffer je klasa Java koja se koristi za stvaranje String objekata koji se mogu izmijeniti sigurnošću niti. |
StringBuilder | StringBuilder je klasa koja se koristi za stvaranje string-objekata koji se mogu izmijeniti bez sigurnosti niti. |
promjenljivost | |
Niz | Niz je nepromjenjiva klasa. |
StringBuffer | StringBuffer je klasa koja se može mijenjati. |
StringBuilder | StringBuilder je klasa koja se može mijenjati. |
Sigurnost navoja | |
Niz | Metode žice su sigurne niti. |
StringBuffer | Metode StringBuffer-a su sigurne na niti i sinkronizirane su. |
StringBuilder | Metode StringBuilder nisu navoje sigurne i ne sinkronizirane. |
Izvođenje | |
Niz | Niz je brz. |
StringBuffer | StringBuffer je spor. |
StringBuilder | StringBuilder je brz. |
Čini se da su stringi, StringBuffer i StringBuilder isti, ali imaju različita značenja. Sve su to klase Java. Razlika između String, StringBuffer i StringBuilder u Javi je ta što je String klasa za kreiranje objekta tipa String koji je skup znakova, StringBuffer je klasa koja se koristi za izmjenu stringova i pružanje sigurnosti niti, dok je StringBuilder a klase koja se koristi za izmjenu žica koje ne osiguravaju sigurnost niti.
Možete preuzeti PDF verziju ovog članka i koristiti je za izvanmrežne svrhe, prema napomeni. Preuzmite PDF verziju ovdje Razlika između String StringBuffer i StringBuilder na Javi
1. "String vs StringBuffer vs StringBuilder." JournalDev, 30. srpnja 2017. Dostupno ovdje
2. "Jaja gladna." Razlika između klasa String, StringBuilder i StringBuffer s primjerom: Java | Jaja gladna. Dostupno ovdje
3.tutorialspoint.com. "Strice Java." Točka. Dostupno ovdje