Razlika između StringBuffer-a i StringBuildera

Razlika između StringBuffer-a i StringBuildera
Razlika između StringBuffer-a i StringBuildera

Video: Razlika između StringBuffer-a i StringBuildera

Video: Razlika između StringBuffer-a i StringBuildera
Video: Zebra zavese sa kukom 2024, Juli
Anonim

StringBuffer vs StringBuilder

Java je veoma popularan objektno orijentisan jezik. U Javi, klasa String je predviđena da drži niz znakova koji se ne može mijenjati (jednom inicijaliziran). Alternativno, programski jezik Java pruža dvije vrste promjenjivih nizova znakova. To jest, kada programeri treba da modifikuju određeni String (nakon inicijalizacije), oni treba da koriste klasu StringBuffer ili klasu StringBuilder, umesto klase String. StringBuffer je uveden u JDK 1.0, a klasa StringBuilder je uvedena u JDK 1.5, zapravo kao zamjena za klasu StringBuffer (za okruženja sa jednim niti).

Šta je StringBuffer?

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

Šta je StringBuilder?

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

Koja je razlika između StringBuffer-a i StringBuilder-a?

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

Preporučuje se: