„StringBuffer“ir „StringBuilder“
„Java“yra labai populiari į objektą orientuota kalba. „Java“klasėje „String“numatyta laikyti simbolių seką, kurios negalima modifikuoti (kai ji yra inicializuota). Arba „Java“programavimo kalba pateikia dviejų tipų kintamas simbolių sekas. Tai yra, kai programuotojams reikia modifikuoti tam tikrą eilutę (po inicializavimo), jie turi naudoti ne „String“, o „StringBuffer“arba „StringBuilder“klasę. „StringBuffer“buvo pristatyta 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š bendrojo „java.lang.object“. Programuotojai negali jos pratęsti toliau, nes tai yra paskutinė klasė. „StringBuffer“klasėje įdiegtos „Serializable“, „Appendable“ir „CharSequience“sąsajos. „StringBuffer“klasės objekte gali būti keičiamų ir saugių siūlų simbolių seka. Tai reiškia, kad jis labai panašus į „String“objektą, tačiau simbolių seka (ilgis ir turinys) gali būti pakeista bet kuriuo metu, inicializavus „StringBuffer“objektą. Tačiau tai turėtų būti padaryta naudojant specifinius „StringBuffer“klasės metodus. „StringBuffer“klasėje yra dvi pagrindinės operacijos. Jie pateikiami „append“() ir „insert“() metodais. Šie metodai yra perkrauti,taigi jie gali priimti bet kokio tipo duomenis, tokius kaip sveikasis skaičius ir ilgasis. Abu metodai pirmiausia transformuoja bet kokį įvestį į eilutę, o tada prie esamo „Stribbuffer“objekto prideda (prideda arba įterpia) atitinkamos eilutės simbolius. Metodas „append“() prideda konvertuotą eilutę prie esamo „StringBuffer“objekto pabaigos, o metodas „insert“) įvesties simbolius pridės prie nurodyto įterpimo taško.
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 paketui „java.lang“ir yra paveldima iš bendrojo „java.lang.object“. Tai yra paskutinė klasė, todėl programuotojai negali jos pratęsti. „StringBuilder“klasėje įdiegtos „Serializable“, „Appendable“ir „CharSequience“sąsajos. Klasės „StringBuilder“objekte gali būti keičiamų, bet saugių siūlų neturinčių simbolių seka. Tai reiškia, kad jis labai panašus į „String“objektą, tačiau eilutę galima pakeisti bet kuriuo metu. Tačiau „StringBuilder“klasė neteikia sinchronizavimo, todėl teigiama, kad ji yra greitesnė nei naudojant „StringBuffer“klasę.„StringBuilder“klasėje pateikiami „append“() ir „insert“() metodai, visiškai panašūs, kaip ir „StringBuffer“klasėje.
Kuo skiriasi „StringBuffer“ir „StringBuilder“?
Nors „StringBuilder“ir „StringBuffer“klases galima naudoti kintamoms „Java“simbolių sekoms, jos turi esminį skirtumą. Skirtingai nuo „StringBuffer“klasės, „StringBuilder“klasė nėra saugi siūlams ir nėra sinchronizuojama. Todėl vienos gijos programose vietoj „StringBuffer“klasės rekomenduojama naudoti „StringBuilder“klasę, nes teigiama, kad „StringBuilder“klasė bus daug greitesnė nei „StringBuffer“klasės (normaliomis aplinkybėmis).