Ključna razlika – String vs StringBuffer vs StringBuilder u Javi
String, StringBuffer i String Builder su klase u Javi. String se široko koristi u Java programiranju. Jednom kada je objekt String kreiran, nije ga moguće promijeniti. Svaki put kada dođe do promjene niza, on stvara novi string. Čak i ako je spoj na postojeći string, on stvara novi string. Ovo uzrokuje gubitak memorije. StringBuffer i StringBuilder klase u Javi se koriste za modificiranje Stringa. Ključna razlika između String, StringBuffer i StringBuilder u Javi je u tome što je String klasa za kreiranje objekta tipa String koji je niz znakova, StringBuffer je klasa koja se koristi za modificiranje Stringova koja obezbjeđuje sigurnost niti, a StringBuilder je klasa koja se koristi za modificiranje Stringova koji ne pružaju sigurnost niti.
Šta je string u Javi?
String klasa je u paketu java.lang. Svaki put kada programer kreira String, on je objekat tipa String. Stringovi su nepromjenjivi što znači da kada se objekt kreira, ne može se mijenjati. Objekti kreirani korištenjem klasa omotača kao što su Integer, Byte, Float, Double su također nepromjenjivi. Literal stringa je stavljen u dvostruke navodnike. npr. "Zdravo svijete". Svaki put kada se kreira string literal, Java virtuelna mašina (JVM) provjerava skup String konstanti. Ako String postoji, vraća se referenca na skup String konstanti. Ako je to novi String, taj objekat se kreira u skupu String konstanti.
Slika 01: Java program koji koristi String, StringBuffer i StringBuilder
Pogledajte donji dio koda.
String s1=“Zdravo”;
s1=s1 + “Svijet”;
System.out.println(s1);
U prvoj izjavi, s1 se odnosi na “Zdravo” u skupu String konstanti. U drugoj izjavi, JVM ne mijenja postojeći String. Umjesto toga, kreira novi string kao "Hello World" i s1 se sada odnosi na taj novi string. Izlazni objekat “Hello” još uvijek postoji u skupu String konstanti.
Ako postoji kod koji je, String s1=”Zdravo”;
String s2=s1;
s1, s2 oba će se odnositi na String objekat “Hello”.
Šta je StringBuffer u Javi?
StringBuffer klasa se koristi da String objekte učini promjenjivim. Stoga se ti objekti mogu mijenjati. StringBuffer definira četiri konstruktora. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)
Pogledajte kod ispod, StringBuffer s1=novi StringBuffer(“Hello”);
s1.append(“Svijet”);
System.out.println(s1);
U izjavi 1, s1 se odnosi na “Hello” objekat u hrpi. Objekt je promjenjiv jer je kreiran pomoću StringBuffera. U naredbi 2, “Svijet” se dodaje istom objektu stringa “Hello”.
String objekti kreirani sa StringBuffer klasom mogu uštedjeti memoriju. StringBuffer pruža sigurnost niti jer dvije niti ne mogu istovremeno pristupiti istoj metodi u klasi StringBuffer. Sigurnost niti smanjuje performanse StringBuffera. StringBuffer klasa sadrži metode kao što su append(), insert(), reverse(), replace().
Šta je StringBuilder u Javi?
StringBuilder klasa se koristi da String objekte učini promjenjivim. Stoga se ti objekti mogu mijenjati. Funkcionalnost je slična StringBuffer-u, ali to ne pruža sigurnost niti. StringBuilder ima konstruktore kao što su StringBuilder(), StringBuilder(int size), StringBuilder(String str).
Pogledajte kod ispod.
StringBuilder s1=novi StringBuilder(“Hello”);
s1.append(“Svijet”);
System.out.println(s1);
U izjavi 1, s1 se odnosi na “Hello” objekat u hrpi. Objekt je promjenjiv jer je kreiran pomoću StringBuilder-a. U naredbi 2, “Svijet” se dodaje istom “Hello” String objektu. Nema kreiranja potpuno novog String objekta.
String objekti kreirani sa StringBuilder klasom mogu uštedjeti memoriju. Za razliku od StringBuffer-a, StringBuilder ne pruža sigurnost niti jer dvije niti mogu pristupiti istom metodu u klasi StringBuilder istovremeno. StringBuilder klasa sadrži metode kao što su append(), insert(), reverse(), replace().
Koja je sličnost između String, StringBuffer i StringBuilder u Javi?
Sve se može koristiti za kreiranje nizova
Koja je razlika između String StringBuffer-a i StringBuilder-a u Javi?
String vs StringBuffer vs StringBuilder |
|
String | String je Java klasa koja se koristi za kreiranje objekta tipa String, koji je niz znakova. |
StringBuffer | StringBuffer je Java klasa koja se koristi za kreiranje String objekata, koji se mogu modificirati uz sigurnost niti. |
StringBuilder | StringBuilder je klasa koja se koristi za kreiranje string objekata, koji se mogu mijenjati bez sigurnosti niti. |
Mutability | |
String | String je nepromjenjiva klasa. |
StringBuffer | StringBuffer je promjenjiva klasa. |
StringBuilder | StringBuilder je promjenjiva klasa. |
Thread Safety | |
String | Metode stringa su bezbedne na niti. |
StringBuffer | Metode StringBuffer-a su sigurne niti i sinhronizirane. |
StringBuilder | Metode StringBuilder-a nisu sigurne niti sinkronizirane. |
performans | |
String | Nica je brza. |
StringBuffer | StringBuffer je spor. |
StringBuilder | StringBuilder je brz. |
Sažetak – String vs StringBuffer vs StringBuilder u Javi
String, StringBuffer i StringBuilder izgleda da su isti, ali imaju različita značenja. Sve su ovo Java klase. Razlika između String, StringBuffer i StringBuilder u Javi je u tome što je String klasa za kreiranje objekta tipa String, koji je skup znakova, StringBuffer je klasa koja se koristi za modificiranje Stringova i obezbjeđivanje sigurnosti niti, dok je StringBuilder klasa koja se koristi za modificiranje Stringova koji ne osiguravaju sigurnost niti.
Preuzmite PDF String vs StringBuffer vs StringBuilder u Javi
Možete preuzeti PDF verziju ovog članka i koristiti ga za vanmrežne svrhe prema napomeni o citatu. Molimo preuzmite PDF verziju ovdje Razlika između String StringBuffer-a i StringBuilder-a u Javi