Razlika između StringBuffer i StringBuilder

Razlika između StringBuffer i StringBuilder
Razlika između StringBuffer i StringBuilder

Video: Razlika između StringBuffer i StringBuilder

Video: Razlika između StringBuffer i StringBuilder
Video: Lajf kouč (Life coach) - trener života ili prodavanje magle 2024, Studeni
Anonim

StringBuffer vs StringBuilder

Java je vrlo popularan objektno orijentirani jezik. U Javi je klasa String predviđena za držanje niza znakova koji se ne mogu mijenjati (jednom inicijalizirani). Alternativno, programski jezik Java nudi dvije vrste promjenjivih nizova znakova. To jest, kada programeri trebaju modificirati određeni String (nakon inicijalizacije), trebaju koristiti klasu StringBuffer ili StringBuilder klasu, umjesto klase String. StringBuffer je uveden u JDK 1.0, a StringBuilder klasa je uvedena u JDK 1.5, zapravo kao zamjena za StringBuffer klasu (za okruženja s jednom niti).

Što je StringBuffer?

StringBuffer klasa uvedena je u JDK 1.0. Klasa StringBuffer pripada paketu java.lang i naslijeđena je od generičkog java.lang.object. Programeri ga ne mogu dalje proširivati jer je to konačna klasa. Klasa StringBuffer implementira sučelja Serializable, Appendable i CharSequience. Objekt klase StringBuffer može sadržavati niz znakova koji je promjenjiv i siguran za niti. To znači da je vrlo sličan String objektu, ali se slijed znakova (duljina i sadržaj) može promijeniti u bilo kojem trenutku nakon inicijalizacije StringBuffer objekta. Međutim, to bi trebalo učiniti korištenjem specifičnih metoda koje pruža klasa StringBuffer. Postoje dvije glavne operacije u StringBuffer klasi. Omogućuju ih metode append() i insert(). Ove metode su preopterećene, tako da mogu prihvatiti podatke bilo koje vrste kao što su integer i long. Obje metode prvo transformiraju bilo koji unos u niz, a zatim dodaju (dodaju ili umeću) znakove odgovarajućeg niza postojećem objektu Stribbuffer. Metoda append() dodaje konvertirani string na kraj postojećeg StringBuffer objekta, dok će metoda insert() dodati znakove za unos u navedenu točku umetanja.

Što je StringBuilder?

StringBuilder klasa uvedena je u JDK 1.5. StringBuilder API vrlo je sličan StringBuffer API-ju. Zapravo, klasa StringBuilder zapravo je uvedena kao zamjena za klasu StringBuffer (za aplikacije s jednom niti). Klasa StringBuilder pripada paketu java.lang i naslijeđena je od generičkog java.lang.object. To je posljednja klasa i stoga je programeri ne mogu proširiti. Klasa StringBuilder implementira sučelja Serializable, Appendable i CharSequience. Objekt klase StringBuilder može sadržavati niz znakova koji je promjenjiv, ali nije niti siguran. To znači da je vrlo sličan objektu String, ali se niz može promijeniti u bilo kojem trenutku. Ali klasa StringBuilder ne pruža sinkronizaciju, pa se stoga tvrdi da je brža od upotrebe klase StringBuffer. Klasa StringBuilder pruža metode append() i insert() s potpuno sličnom funkcionalnošću kao u klasi StringBuffer.

Koja je razlika između StringBuffer i StringBuilder?

Iako se klase StringBuilder i StringBuffer mogu koristiti za promjenjive nizove znakova u Javi, one imaju ključnu razliku. Za razliku od StringBuffer klase, StringBuilder klasa nije niti sigurna i ne pruža sinkronizaciju. Stoga se preporučuje da se klasa StringBuilder koristi umjesto klase StringBuffer u aplikacijama s jednom niti, jer se tvrdi da će klasa StringBuilder biti mnogo brža od klase StringBuffer (pod normalnim okolnostima).

Preporučeni: