Razlika med StringBuffer in StringBuilder

Razlika med StringBuffer in StringBuilder
Razlika med StringBuffer in StringBuilder

Video: Razlika med StringBuffer in StringBuilder

Video: Razlika med StringBuffer in StringBuilder
Video: Никто больше не заботится! ~ Заброшенный дом святого торговца антиквариатом 2024, Julij
Anonim

StringBuffer proti StringBuilder

Java je zelo priljubljen objektno usmerjen jezik. V Javi je na voljo razred String za zaporedje znakov, ki jih ni mogoče spremeniti (ko so inicializirani). Druga možnost je, da programski jezik Java ponuja dve vrsti spremenljivih zaporedij znakov. To pomeni, da ko morajo programerji spremeniti določen niz (po inicializaciji), morajo uporabiti razred StringBuffer ali razred StringBuilder namesto razreda String. StringBuffer je bil uveden v JDK 1.0, razred StringBuilder pa v JDK 1.5, pravzaprav kot zamenjava za razred StringBuffer (za okolja z eno nitjo).

Kaj je StringBuffer?

Razred StringBuffer je bil predstavljen v JDK 1.0. Razred StringBuffer pripada paketu java.lang in je podedovan iz generičnega java.lang.object. Programerji ga ne morejo še razširiti, ker je končni razred. Razred StringBuffer implementira vmesnike Serializable, Appendable in CharSequience. Objekt razreda StringBuffer lahko vsebuje zaporedje znakov, ki je spremenljivo in nitno varno. To pomeni, da je zelo podoben objektu String, vendar je mogoče zaporedje znakov (dolžino in vsebino) kadar koli spremeniti po inicializaciji objekta StringBuffer. Vendar je treba to narediti z uporabo posebnih metod, ki jih ponuja razred StringBuffer. V razredu StringBuffer obstajata dve glavni operaciji. Zagotavljata jih metodi append() in insert(). Te metode so preobremenjene, zato lahko sprejmejo podatke katere koli vrste, kot sta celo število in dolgo. Obe metodi najprej pretvorita vsak vnos v niz in nato dodata (priložita ali vstavita) znake ustreznega niza obstoječemu objektu Stribbuffer. Metoda append() doda pretvorjen niz na konec obstoječega objekta StringBuffer, medtem ko bo metoda insert() dodala vhodne znake na navedeno točko vstavljanja.

Kaj je StringBuilder?

Razred StringBuilder je bil predstavljen v JDK 1.5. API StringBuilder je zelo podoben API-ju StringBuffer. Pravzaprav je bil razred StringBuilder dejansko uveden kot zamenjava za razred StringBuffer (za aplikacije z eno nitjo). Razred StringBuilder pripada paketu java.lang in je podedovan iz generičnega java.lang.object. Je končni razred, zato ga programerji ne morejo razširiti. Razred StringBuilder izvaja vmesnike Serializable, Appendable in CharSequience. Objekt razreda StringBuilder lahko vsebuje zaporedje znakov, ki je spremenljivo, vendar ni varno za niti. To pomeni, da je zelo podoben objektu String, vendar je niz mogoče kadar koli spremeniti. Toda razred StringBuilder ne zagotavlja sinhronizacije in zato naj bi bil hitrejši od uporabe razreda StringBuffer. Razred StringBuilder ponuja metodi append() in insert() s popolnoma podobno funkcionalnostjo kot razred StringBuffer.

Kakšna je razlika med StringBuffer in StringBuilder?

Čeprav je razrede StringBuilder in StringBuffer mogoče uporabiti za spremenljiva zaporedja znakov v Javi, imata ključno razliko. Za razliko od razreda StringBuffer razred StringBuilder ni varen za niti in ne zagotavlja sinhronizacije. Zato je priporočljivo, da se razred StringBuilder uporablja namesto razreda StringBuffer v aplikacijah z eno nitjo, ker se trdi, da bo razred StringBuilder veliko hitrejši od razreda StringBuffer (v normalnih okoliščinah).

Priporočena: