Diferența dintre StringBuffer și StringBuilder

Diferența dintre StringBuffer și StringBuilder
Diferența dintre StringBuffer și StringBuilder

Video: Diferența dintre StringBuffer și StringBuilder

Video: Diferența dintre StringBuffer și StringBuilder
Video: Cum circulăm pe ceață? Ce trebuie să știm în condiții de ceață? 2024, Iulie
Anonim

StringBuffer vs StringBuilder

Java este un limbaj foarte popular orientat pe obiecte. În Java, clasa String este furnizată pentru a păstra o secvență de caractere care nu poate fi modificată (odată inițializată). Alternativ, limbajul de programare Java oferă două tipuri de secvențe mutabile de caractere. Adică, atunci când programatorii trebuie să modifice un anumit String (după inițializare), trebuie să folosească clasa StringBuffer sau clasa StringBuilder, în loc de clasa String. StringBuffer a fost introdus în JDK 1.0 și clasa StringBuilder a fost introdusă în JDK 1.5, de fapt ca înlocuitor pentru clasa StringBuffer (pentru medii cu un singur fir).

Ce este StringBuffer?

Clasa StringBuffer a fost introdusă în JDK 1.0. Clasa StringBuffer aparține pachetului java.lang și este moștenită din genericul java.lang.object. Programatorii nu o pot extinde mai departe, deoarece este o clasă finală. Clasa StringBuffer implementează interfețele Serializable, Appendable și CharSequience. Un obiect din clasa StringBuffer poate deține o secvență de caractere care este mutabilă și sigură pentru fire. Aceasta înseamnă că este foarte asemănător cu un obiect String, dar secvența de caractere (lungime și conținut) poate fi schimbată în orice moment după inițializarea obiectului StringBuffer. Cu toate acestea, acest lucru ar trebui făcut folosind metodele specifice furnizate de clasa StringBuffer. Există două operații principale în clasa StringBuffer. Acestea sunt furnizate de metodele append() și insert(). Aceste metode sunt supraîncărcate, astfel încât sunt capabile să accepte date de orice tip, cum ar fi întregi și lungi. Ambele metode transformă mai întâi orice intrare într-un șir, apoi adaugă (adaugă sau inserează) caracterele șirului corespunzător obiectului Stribbuffer existent. Metoda append() adaugă șirul convertit la sfârșitul obiectului StringBuffer existent, în timp ce metoda insert() va adăuga caracterele de intrare la punctul de inserare specificat.

Ce este StringBuilder?

Clasa StringBuilder a fost introdusă în JDK 1.5. API-ul StringBuilder este foarte asemănător cu API-ul StringBuffer. De fapt, clasa StringBuilder a fost introdusă ca înlocuitor pentru clasa StringBuffer (pentru aplicații cu un singur fir). Clasa StringBuilder aparține pachetului java.lang și este moștenită din genericul java.lang.object. Este o clasă finală și deci programatorii nu o pot extinde. Clasa StringBuilder implementează interfețele Serializable, Appendable și CharSequience. Un obiect din clasa StringBuilder poate deține o secvență de caractere care este mutabilă, dar nu este sigură pentru fire. Aceasta înseamnă că este foarte asemănător cu un obiect String, dar șirul poate fi schimbat în orice moment. Dar clasa StringBuilder nu oferă sincronizare și, prin urmare, se pretinde a fi mai rapidă decât utilizarea clasei StringBuffer. Clasa StringBuilder oferă metode append() și insert() cu funcționalități exact similare ca în clasa StringBuffer.

Care este diferența dintre StringBuffer și StringBuilder?

Deși, clasele StringBuilder și StringBuffer pot fi folosite pentru secvențe mutabile de caractere în Java, ele au o diferență cheie. Spre deosebire de clasa StringBuffer, clasa StringBuilder nu este sigură pentru fire și nu oferă sincronizare. Prin urmare, se recomandă ca clasa StringBuilder să fie utilizată în locul clasei StringBuffer în aplicațiile cu un singur fir, deoarece se pretinde că clasa StringBuilder va fi mult mai rapidă decât clasa StringBuffer (în circumstanțe normale).

Recomandat: