Skirtumas tarp StringBuffer ir StringBuilder

Skirtumas tarp StringBuffer ir StringBuilder
Skirtumas tarp StringBuffer ir StringBuilder

Video: Skirtumas tarp StringBuffer ir StringBuilder

Video: Skirtumas tarp StringBuffer ir StringBuilder
Video: ФОШ155 - ОЧЕРЕДНАЯ ПОПЫТКА НЕ УЛЕТЕТЬ НА ОЧКОВОЙ ТЯГЕ 2024, Liepa
Anonim

StringBuffer vs StringBuilder

Java yra labai populiari į objektus orientuota kalba. „Java“programoje „String“klasė yra skirta simbolių sekai, kurios negalima modifikuoti (kartą inicijavus). Arba „Java“programavimo kalba suteikia dviejų tipų kintančias simbolių sekas. Tai yra, kai programuotojams reikia modifikuoti tam tikrą eilutę (po inicijavimo), jie turi naudoti klasę StringBuffer arba StringBuilder, o ne klasę String. StringBuffer buvo pristatytas JDK 1.0, o StringBuilder klasė buvo pristatyta JDK 1.5, iš tikrųjų kaip StringBuffer klasės pakaitalas (vienos gijos aplinkoms).

Kas yra StringBuffer?

StringBuffer klasė buvo pristatyta JDK 1.0 versijoje. StringBuffer klasė priklauso java.lang paketui ir yra paveldima iš bendro java.lang.object. Programuotojai negali to išplėsti, nes tai yra paskutinė klasė. StringBuffer klasė įgyvendina Serializable, Appendable ir CharSequience sąsajas. Klasės StringBuffer objektas gali turėti simbolių seką, kuri yra kintama ir saugi. Tai reiškia, kad jis labai panašus į String objektą, tačiau simbolių seka (ilgis ir turinys) gali būti pakeista bet kuriuo metu inicijavus StringBuffer objektą. Tačiau tai turėtų būti daroma naudojant specialius metodus, kuriuos pateikia StringBuffer klasė. „StringBuffer“klasėje yra dvi pagrindinės operacijos. Jie pateikiami append() ir insert() metodais. Šie metodai yra perkrauti, todėl jie gali priimti bet kokio tipo duomenis, pvz., sveikuosius ir ilgus. Abu metodai pirmiausia paverčia bet kokią įvestį į eilutę, o tada prideda (prideda arba įterpia) atitinkamos eilutės simbolius prie esamo Stribbuffer objekto. Metodas append() prideda konvertuotą eilutę prie esamo StringBuffer objekto pabaigos, o metodas insert() pridės įvesties simbolius į nurodytą įterpimo tašką.

Kas yra StringBuilder?

StringBuilder klasė buvo pristatyta JDK 1.5 versijoje. StringBuilder API yra labai panaši į StringBuffer API. Tiesą sakant, „StringBuilder“klasė iš tikrųjų buvo pristatyta kaip „StringBuffer“klasės pakaitalas (vienos gijos programoms). StringBuilder klasė priklauso java.lang paketui ir yra paveldima iš bendro java.lang.object. Tai paskutinė klasė, todėl programuotojai negali jos pratęsti. „StringBuilder“klasė įgyvendina Serializable, Appendable ir CharSequience sąsajas. Klasės StringBuilder objektas gali turėti simbolių seką, kuri yra kintama, bet neapsaugota nuo gijos. Tai reiškia, kad ji labai panaši į String objektą, tačiau eilutę galima bet kada pakeisti. Tačiau „StringBuilder“klasė neužtikrina sinchronizavimo, todėl teigiama, kad ji yra greitesnė nei naudojant „StringBuffer“klasę.„StringBuilder“klasėje pateikiami append() ir insert() metodai, kurių funkcionalumas yra visiškai panašus kaip ir „StringBuffer“klasėje.

Kuo skiriasi StringBuffer ir StringBuilder?

Nors „StringBuilder“ir „StringBuffer“klasės gali būti naudojamos kintamoms „Java“simbolių sekoms, jos turi esminį skirtumą. Skirtingai nuo „StringBuffer“klasės, „StringBuilder“klasė nėra saugi ir neteikia sinchronizavimo. Todėl rekomenduojama, kad vienos gijos programose vietoj StringBuffer klasės būtų naudojama StringBuilder klasė, nes teigiama, kad StringBuilder klasė bus daug greitesnė nei StringBuffer klasė (įprastomis aplinkybėmis).

Rekomenduojamas: