StringBuffer va StringBuilder o'rtasidagi farq

StringBuffer va StringBuilder o'rtasidagi farq
StringBuffer va StringBuilder o'rtasidagi farq

Video: StringBuffer va StringBuilder o'rtasidagi farq

Video: StringBuffer va StringBuilder o'rtasidagi farq
Video: Разница между String StringBuffer и StringBuilder в Java от Deepak 2024, Iyul
Anonim

StringBuffer va StringBuilder

Java juda mashhur ob'ektga yo'n altirilgan tildir. Java-da String klassi o'zgartirib bo'lmaydigan belgilar ketma-ketligini saqlash uchun taqdim etilgan (bir marta ishga tushirilgan). Shu bilan bir qatorda, Java dasturlash tili ikki turdagi o'zgaruvchan belgilar ketma-ketligini ta'minlaydi. Ya'ni, dasturchilar ma'lum bir Stringni o'zgartirishi kerak bo'lganda (insializatsiya qilingandan so'ng), String sinfi o'rniga StringBuffer sinfidan yoki StringBuilder sinfidan foydalanishlari kerak. StringBuffer JDK 1.0 da joriy qilingan va StringBuilder klassi JDK 1.5 da joriy qilingan, aslida StringBuffer sinfining o'rnini bosuvchi (bitta mavzuli muhitlar uchun).

StringBuffer nima?

StringBuffer klassi JDK 1.0 da joriy qilingan. StringBuffer klassi java.lang paketiga tegishli bo'lib, umumiy java.lang.object-dan meros qilib olingan. Dasturchilar uni yanada kengaytira olmaydi, chunki bu oxirgi sinfdir. StringBuffer klassi Serializable, Appendable va CharSequience interfeyslarini amalga oshiradi. StringBuffer sinfining ob'ekti o'zgaruvchan va iplar uchun xavfsiz bo'lgan belgilar ketma-ketligini saqlashi mumkin. Ya'ni, u String ob'ektiga juda o'xshaydi, lekin belgilar ketma-ketligi (uzunlik va tarkib) StringBuffer ob'ektini ishga tushirgandan so'ng istalgan vaqtda o'zgartirilishi mumkin. Biroq, bu StringBuffer sinfi tomonidan taqdim etilgan maxsus usullar yordamida amalga oshirilishi kerak. StringBuffer sinfida ikkita asosiy amal mavjud. Ular append() va insert() usullari bilan ta'minlanadi. Ushbu usullar haddan tashqari yuklangan, shuning uchun ular butun va uzunlik kabi har qanday turdagi ma'lumotlarni qabul qila oladi. Ikkala usul ham birinchi navbatda har qanday kiritishni satrga o'zgartiradi va keyin mavjud Stribbuffer ob'ektiga mos keladigan satr belgilarini qo'shadi (qo'shadi yoki qo'shadi).append() usuli o'zgartirilgan satrni mavjud StringBuffer obyektining oxiriga qo'shadi, insert() usuli esa kiritilgan belgilarni belgilangan qo'shish nuqtasiga qo'shadi.

StringBuilder nima?

StringBuilder klassi JDK 1.5 da joriy qilingan. StringBuilder API StringBuffer API ga juda o'xshaydi. Aslida, StringBuilder klassi StringBuffer sinfining o'rnini bosuvchi sifatida joriy qilingan (bitta mavzuli ilovalar uchun). StringBuilder klassi java.lang paketiga tegishli bo'lib, umumiy java.lang.object-dan meros qilib olingan. Bu yakuniy sinf va shuning uchun dasturchilar uni kengaytira olmaydi. StringBuilder klassi Serializable, Appendable va CharSequience interfeyslarini amalga oshiradi. StringBuilder sinfining ob'ekti o'zgaruvchan, ammo iplar uchun xavfsiz bo'lmagan belgilar ketma-ketligini saqlashi mumkin. Ya'ni, u String ob'ektiga juda o'xshaydi, lekin satr istalgan vaqtda o'zgartirilishi mumkin. Ammo StringBuilder klassi sinxronizatsiyani ta'minlamaydi va shuning uchun StringBuffer sinfidan foydalanishdan tezroq deb da'vo qilinadi. StringBuilder klassi append() va insert() usullarini StringBuffer sinfidagi kabi funksiyalarga mutlaqo o‘xshash tarzda taqdim etadi.

StringBuffer va StringBuilder o'rtasidagi farq nima?

StringBuilder va StringBuffer sinflari Java-da oʻzgaruvchan belgilar ketma-ketligi uchun ishlatilishi mumkin boʻlsa-da, ularning asosiy farqi bor. StringBuffer sinfidan farqli o'laroq, StringBuilder klassi iplar uchun xavfsiz emas va sinxronizatsiyani ta'minlamaydi. Shuning uchun, StringBuilder klassi StringBuffer klassi o'rniga bitta mavzuli ilovalarda qo'llanilishi tavsiya etiladi, chunki StringBuilder klassi StringBuffer sinfidan (oddiy sharoitlarda) tezroq bo'ladi, deb da'vo qilinadi.

Tavsiya: