StringBuffer vs StringBuilder
Java este un limbaj orientat pe obiecte foarte popular. În Java, clasa String este furnizată pentru a conține o secvență de caractere care nu pot fi modificate (odată inițializate). Alternativ, limbajul de programare Java oferă două tipuri de secvențe mutabile de caractere. Adică, atunci când programatorii trebuie să modifice un anumit șir (după inițializare), trebuie să utilizeze clasa StringBuffer sau clasa StringBuilder, în locul clasei 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ă de la genericul java.lang.object. Programatorii nu o pot extinde mai mult, deoarece este o clasă finală. Clasa StringBuffer implementează interfețe Serializable, Appendable și CharSequience. Un obiect din clasa StringBuffer poate conține o secvență de caractere care poate fi modificată și sigură pentru fire. Asta înseamnă că este foarte similar cu un obiect String, dar secvența de caractere (lungime și conținut) poate fi modificată în orice moment după inițializarea obiectului StringBuffer. Cu toate acestea, acest lucru trebuie făcut folosind metodele specifice furnizate de clasa StringBuffer. Există două operații principale în clasa StringBuffer. Acestea sunt furnizate prin metode append () și insert (). Aceste metode sunt supraîncărcate,deci sunt capabili să accepte date de orice tip, cum ar fi întreg și lung. 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. StringBuilder API este foarte similar cu StringBuffer API. De fapt, clasa StringBuilder a fost introdusă de fapt ca înlocuitor pentru clasa StringBuffer (pentru aplicații cu un singur fir). Clasa StringBuilder aparține pachetului java.lang și este moștenită de la genericul java.lang.object. Este o clasă finală și astfel programatorii nu o pot extinde. Clasa StringBuilder implementează interfețe Serializable, Appendable și CharSequience. Un obiect al clasei StringBuilder poate conține o secvență de caractere care poate fi modificată, dar nu este sigură pentru fire. Asta înseamnă că este foarte similar cu un obiect String, dar șirul poate fi schimbat oricând. 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 cu cele din clasa StringBuffer.
Care este diferența dintre StringBuffer și StringBuilder?
Deși, clasele StringBuilder și StringBuffer pot fi utilizate 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ă utilizarea clasei StringBuilder în locul clasei StringBuffer în aplicațiile cu un singur fir, deoarece se susține că clasa StringBuilder va fi mult mai rapidă decât clasa StringBuffer (în circumstanțe normale).