Asosiy farq – Java’dagi String va StringBuffer va StringBuilder
String, StringBuffer va String Builder Java tilidagi sinflardir. String Java dasturlashda keng qo'llaniladi. String ob'ekti yaratilgandan keyin ularni o'zgartirish mumkin emas. Har safar Stringga o'zgartirishlar kiritilganda, u yangi Stringni yaratadi. Agar u mavjud String bilan birlashma bo'lsa ham, u yangi String yaratadi. Bu xotirani yo'qotishga olib keladi. Stringni o'zgartirish uchun Java'dagi StringBuffer va StringBuilder sinflari ishlatiladi. Java-dagi String, StringBuffer va StringBuilder o'rtasidagi asosiy farq shundaki, String - bu belgilar ketma-ketligi bo'lgan String tipidagi ob'ektni yaratish uchun sinf, StringBuffer - ip xavfsizligini ta'minlaydigan Stringlarni o'zgartirish uchun ishlatiladigan sinf va StringBuilder - bu ip xavfsizligini ta'minlamaydigan satrlarni o'zgartirish uchun ishlatiladigan sinf.
Javada String nima?
String klassi java.lang paketida. Har safar dasturchi Stringni yaratganda, u String tipidagi ob'ekt bo'ladi. Satrlar ob'ekt yaratilgandan keyin o'zgarmas ma'nodir, uni o'zgartirib bo'lmaydi. Integer, Byte, Float, Double kabi o'rash sinflari yordamida yaratilgan ob'ektlar ham o'zgarmasdir. Satr harfi qo'sh tirnoq ichiga olingan. masalan "Salom Dunyo". Har safar string literal yaratilganda, Java Virtual Machine (JVM) String doimiy pulini tekshiradi. Agar String mavjud bo'lsa, String doimiy hovuziga havola qaytariladi. Agar u yangi String bo'lsa, u ob'ekt String doimiy hovuzida yaratiladi.
01-rasm: String, StringBuffer va StringBuilder yordamida Java dasturi
Quyidagi kod qismiga qarang.
String s1=“Salom”;
s1=s1 + “Dunyo”;
System.out.println(s1);
Birinchi bayonotda s1 String doimiy hovuzidagi "Salom" ga ishora qilmoqda. Ikkinchi bayonotda JVM mavjud Stringni o'zgartirmaydi. Buning o'rniga, u "Salom dunyo" sifatida yangi String yaratadi va s1 endi o'sha yangi Stringga ishora qilmoqda. Chiqib ketayotgan “Salom” obyekti hali ham String doimiy hovuzida mavjud.
Agar kod mavjud boʻlsa, String s1="Salom";
String s2=s1;
s1, s2 ikkalasi ham “Salom” string obyektiga ishora qiladi.
Java'da StringBuffer nima?
StringBuffer klassi String obyektlarini oʻzgaruvchan qilish uchun ishlatiladi. Shunday qilib, ushbu ob'ektlarni o'zgartirish mumkin. StringBuffer to'rtta konstruktorni belgilaydi. StringBuffer(), StringBuffer(int hajmi), StringBuffer(String str), StringBuffer (charSequence ch)
Quyidagi kodga qarang, StringBuffer s1=yangi StringBuffer("Salom");
s1.append("Dunyo");
System.out.println(s1);
1-iborada s1 toʻpdagi “Salom” obyektiga ishora qilmoqda. Ob'ekt o'zgaruvchan, chunki u StringBuffer yordamida yaratilgan. 2-bandda “Dunyo” oʻsha “Salom” String obyektiga qoʻshilgan.
StringBuffer klassi bilan yaratilgan string ob'ektlar xotirani saqlashi mumkin. StringBuffer ip xavfsizligini ta'minlaydi, chunki ikkita ip bir vaqtning o'zida StringBuffer sinfidagi bir xil usulga kira olmaydi. Mavzu xavfsizligi StringBuffer unumdorligini pasaytiradi. StringBuffer sinfida append(), insert(), reverse(), replace() kabi usullar mavjud.
Javada StringBuilder nima?
StringBuilder klassi String obyektlarini oʻzgaruvchan qilish uchun ishlatiladi. Shunday qilib, ushbu ob'ektlarni o'zgartirish mumkin. Funktsionallik StringBuffer-ga o'xshaydi, ammo bu ip xavfsizligini ta'minlamaydi. StringBuilderda StringBuilder(), StringBuilder(int size), StringBuilder(String str) kabi konstruktorlar mavjud.
Quyidagi kodga qarang.
StringBuilder s1=yangi StringBuilder("Salom");
s1.append("Dunyo");
System.out.println(s1);
1-iborada s1 toʻpdagi “Salom” obyektiga ishora qilmoqda. Ob'ekt o'zgaruvchan, chunki u StringBuilder yordamida yaratilgan. 2-bandda "Dunyo" bir xil "Salom" String ob'ektiga qo'shiladi. Butunlay yangi String obyekti yaratilmagan.
StringBuilder klassi bilan yaratilgan string ob'ektlar xotirani saqlashi mumkin. StringBuffer-dan farqli o'laroq, StringBuilder ip xavfsizligini ta'minlamaydi, chunki ikkita ip bir vaqtning o'zida StringBuilder sinfida bir xil usulga kirishi mumkin. StringBuilder sinfida append(), insert(), reverse(), replace() kabi usullar mavjud.
Java'da String, StringBuffer va StringBuilder o'rtasidagi o'xshashlik nimada?
Barchasi strings yaratish uchun ishlatilishi mumkin
Java'da String StringBuffer va StringBuilder o'rtasidagi farq nima?
String va StringBuffer va StringBuilder |
|
String | String Java klassi boʻlib, u belgilar ketma-ketligidan iborat String tipidagi obyektni yaratish uchun ishlatiladi. |
StringBuffer | StringBuffer Java klassi boʻlib, u tarmoq xavfsizligi bilan oʻzgartirilishi mumkin boʻlgan String obyektlarini yaratish uchun foydalaniladi. |
StringBuilder | StringBuilder - bu string obyektlarini yaratish uchun ishlatiladigan sinf, ularni ip xavfsizligisiz o'zgartirish mumkin. |
Oʻzgaruvchanlik | |
String | String oʻzgarmas sinfdir. |
StringBuffer | StringBuffer oʻzgaruvchan sinfdir. |
StringBuilder | StringBuilder oʻzgaruvchan sinfdir. |
Ip xavfsizligi | |
String | String usullari xavfsiz. |
StringBuffer | StringBuffer usullari tarmoq uchun xavfsiz va sinxronlashtiriladi. |
StringBuilder | StringBuilder usullari xavfsiz va sinxronlashtirilmagan. |
Umumiylik | |
String | String tez. |
StringBuffer | StringBuffer sekin. |
StringBuilder | StringBuilder tez. |
Xulosa – Java’dagi String va StringBuffer va StringBuilder
String, StringBuffer va StringBuilder bir xil ko'rinadi, lekin ular turli ma'nolarga ega. Bularning barchasi Java sinflari. Java-dagi String, StringBuffer va StringBuilder o'rtasidagi farq shundaki, String - bu String tipidagi ob'ektni yaratish uchun sinf, bu belgilar to'plamidir, StringBuffer - bu Stringlarni o'zgartirish va ip xavfsizligini ta'minlash uchun ishlatiladigan sinf, StringBuilder esa ip xavfsizligini ta'minlamaydigan Stringlarni o'zgartirish uchun ishlatiladigan sinf.
PDF String va StringBuffer va StringBuilder-ni Java-da yuklab oling
Siz ushbu maqolaning PDF-versiyasini yuklab olishingiz va iqtibos keltirgan holda oflayn maqsadlarda foydalanishingiz mumkin. Iltimos, PDF-versiyasini shu yerdan yuklab oling: Java-dagi String StringBuffer va StringBuilder o'rtasidagi farq