Rozdíl mezi StringBuffer a StringBuilder

Rozdíl mezi StringBuffer a StringBuilder
Rozdíl mezi StringBuffer a StringBuilder

Video: Rozdíl mezi StringBuffer a StringBuilder

Video: Rozdíl mezi StringBuffer a StringBuilder
Video: Fog and Mist #fog #mist #difference 2024, Červenec
Anonim

StringBuffer vs StringBuilder

Java je velmi oblíbený objektově orientovaný jazyk. V Javě je k dispozici třída String, která obsahuje sekvenci znaků, které nelze upravit (po inicializaci). Alternativně programovací jazyk Java poskytuje dva typy proměnlivých sekvencí znaků. To znamená, že když programátoři potřebují upravit určitý řetězec (po inicializaci), musí místo třídy String použít třídu StringBuffer nebo třídu StringBuilder. StringBuffer byl představen v JDK 1.0 a třída StringBuilder byla představena v JDK 1.5, vlastně jako náhrada za třídu StringBuffer (pro prostředí s jedním vláknem).

Co je StringBuffer?

Třída StringBuffer byla představena v JDK 1.0. Třída StringBuffer patří do balíčku java.lang a je zděděna z generického java.lang.object. Programátoři ji nemohou dále rozšiřovat, protože je to poslední třída. Třída StringBuffer implementuje rozhraní Serializable, Appendable a CharSequience. Objekt třídy StringBuffer může obsahovat sekvenci znaků, která je měnitelná a bezpečná pro vlákna. To znamená, že je velmi podobný objektu String, ale posloupnost znaků (délku a obsah) lze po inicializaci objektu StringBuffer kdykoli změnit. To by však mělo být provedeno pomocí specifických metod poskytovaných třídou StringBuffer. Ve třídě StringBuffer existují dvě základní operace. Poskytují je metody append() a insert(). Tyto metody jsou přetížené, takže jsou schopny přijímat data libovolného typu, jako jsou integer a long. Obě metody nejprve transformují jakýkoli vstup na řetězec a poté do existujícího objektu Stribbbuffer přidá (připojí nebo vloží) znaky odpovídajícího řetězce. Metoda append() přidá převedený řetězec na konec existujícího objektu StringBuffer, zatímco metoda insert() přidá vstupní znaky do zadaného textového kurzoru.

Co je StringBuilder?

Třída StringBuilder byla představena v JDK 1.5. StringBuilder API je velmi podobné StringBuffer API. Třída StringBuilder byla ve skutečnosti představena jako náhrada za třídu StringBuffer (pro jednovláknové aplikace). Třída StringBuilder patří do balíčku java.lang a je zděděna z generického java.lang.object. Je to závěrečná třída, takže ji programátoři nemohou rozšířit. Třída StringBuilder implementuje rozhraní Serializable, Appendable a CharSequience. Objekt třídy StringBuilder může obsahovat sekvenci znaků, která je měnitelná, ale není bezpečná pro vlákna. To znamená, že je velmi podobný objektu String, ale řetězec lze kdykoli změnit. Třída StringBuilder však neposkytuje synchronizaci, a proto se tvrdí, že je rychlejší než použití třídy StringBuffer. Třída StringBuilder poskytuje metody append() a insert() s přesně podobnou funkčností jako ve třídě StringBuffer.

Jaký je rozdíl mezi StringBuffer a StringBuilder?

Přestože lze třídy StringBuilder a StringBuffer použít pro měnitelné sekvence znaků v Javě, mají zásadní rozdíl. Na rozdíl od třídy StringBuffer není třída StringBuilder bezpečná pro vlákna a neposkytuje žádnou synchronizaci. Proto se doporučuje, aby se třída StringBuilder používala místo třídy StringBuffer v aplikacích s jedním vláknem, protože se tvrdí, že třída StringBuilder bude mnohem rychlejší než třída StringBuffer (za normálních okolností).

Doporučuje: