Rozdiel medzi StringBuffer a StringBuilder

StringBuffer vs StringBuilder

Java je veľmi populárny objektovo orientovaný jazyk. V Jave je trieda String poskytovaná na držanie postupnosti znakov, ktoré nemôžu byť zmenené (po inicializácii). Programovací jazyk Java poskytuje alternatívne dva typy premenných sekvencií znakov. To znamená, že keď programátori potrebujú modifikovať určitý reťazec (po inicializácii), musia namiesto triedy String použiť triedu StringBuffer alebo triedu StringBuilder. StringBuffer bol predstavený v JDK 1.0 a trieda StringBuilder bola predstavená v JDK 1.5, v skutočnosti ako náhrada za triedu StringBuffer (pre prostredia s jedným vláknom).

Čo je StringBuffer?

Trieda StringBuffer bola predstavená v JDK 1.0. Trieda StringBuffer patrí do balíka java.lang a je zdedená z generického súboru java.lang.object. Programátori ju nemôžu ďalej rozširovať, pretože ide o konečnú triedu. Trieda StringBuffer implementuje rozhrania Serializable, Appendable a CharSequience. Objekt triedy StringBuffer môže obsahovať sekvenciu znakov, ktorá je zameniteľná a bezpečná pre vlákna. To znamená, že je veľmi podobný objektu String, ale poradie znakov (dĺžka a obsah) sa môže kedykoľvek inicializovať po inicializácii objektu StringBuffer. Malo by sa to však urobiť pomocou špecifických metód, ktoré poskytuje trieda StringBuffer. V triede StringBuffer existujú dve základné operácie. Poskytujú sa metódami append () a insert (). Tieto metódy sú preťažené, takže dokážu prijímať údaje akéhokoľvek typu, napríklad celé alebo dlhé. Obe metódy najskôr transformujú akýkoľvek vstup na reťazec a potom do existujúceho objektu Stribbuffer pridajú (pripoja alebo vložia) znaky zodpovedajúceho reťazca. Metóda append () pridá skonvertovaný reťazec na koniec existujúceho objektu StringBuffer, zatiaľ čo metóda insert () pridá vstupné znaky do zadaného bodu vloženia..

Čo je StringBuilder?

Trieda StringBuilder bola predstavená v JDK 1.5. StringBuilder API je veľmi podobné StringBuffer API. V skutočnosti bola trieda StringBuilder skutočne zavedená ako náhrada za triedu StringBuffer (pre aplikácie s jedným vláknom). Trieda StringBuilder patrí do balíka java.lang a je zdedená z generického súboru java.lang.object. Je to posledná trieda, takže ju nemôžu programátori rozšíriť. Trieda StringBuilder implementuje rozhrania Serializable, Appendable a CharSequience. Objekt triedy StringBuilder môže obsahovať sekvenciu znakov, ktorá je zameniteľná, ale nie je bezpečná pre vlákna. To znamená, že je veľmi podobný objektu String, ale reťazec sa dá kedykoľvek zmeniť. Trieda StringBuilder však neposkytuje synchronizáciu, a preto sa tvrdí, že je rýchlejšia ako používanie triedy StringBuffer. Trieda StringBuilder poskytuje metódy append () a insert () s presne podobnou funkčnosťou ako v triede StringBuffer.

Aký je rozdiel medzi StringBuffer a StringBuilder?

Aj keď triedy StringBuilder a StringBuffer sa dajú použiť na premenné sekvencie znakov v Jave, majú zásadný rozdiel. Na rozdiel od triedy StringBuffer nie je trieda StringBuilder bezpečná pre vlákna a neposkytuje synchronizáciu. Preto sa odporúča používať triedu StringBuilder namiesto triedy StringBuffer v aplikáciách s jedným vláknom, pretože sa tvrdí, že trieda StringBuilder bude oveľa rýchlejšia ako trieda StringBuffer (za normálnych okolností)..