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: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, Listopad
Anonim

StringBuffer vs StringBuilder

Java je velmi populární objektově orientovaný jazyk. V Javě je třída String poskytována k uložení posloupnosti 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ý String (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 zavedena 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 dědí se z obecného java.lang.object. Programátoři jej nemohou dále rozšiřovat, protože se jedná o závěrečnou třídu. Třída StringBuffer implementuje rozhraní Serializable, Appendable a CharSequience. Objekt třídy StringBuffer může obsahovat posloupnost znaků, které jsou proměnlivé 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í konkrétních metod poskytovaných třídou StringBuffer. Ve třídě StringBuffer existují dvě základní operace. Jsou poskytovány metodami append () a insert (). Tyto metody jsou přetížené,takže jsou schopni přijímat data jakéhokoli typu, například integer a long. Obě metody nejprve transformují jakýkoli vstup na řetězec a poté přidají (připojí nebo vloží) znaky odpovídajícího řetězce do existujícího objektu Stribbuffer. 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 bodu vložení.

Co je StringBuilder?

Třída StringBuilder byla představena v JDK 1.5. StringBuilder API je velmi podobné StringBuffer API. Ve skutečnosti byla třída StringBuilder skutečně zavedena jako náhrada za třídu StringBuffer (pro aplikace s jedním vláknem). Třída StringBuilder patří do balíčku java.lang a dědí se z obecného java.lang.object. Jedná se o závěrečnou třídu, 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 posloupnost znaků, které jsou proměnlivé, ale nejsou bezpečné pro vlákna. To znamená, že je velmi podobné objektu String, ale řetězec lze kdykoli změnit. Ale třída StringBuilder 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ě podobnými funkcemi jako ve třídě StringBuffer.

Jaký je rozdíl mezi StringBuffer a StringBuilder?

Ačkoli třídy StringBuilder a StringBuffer lze použít pro proměnlivé sekvence znaků v Javě, mají klíčový 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 použít třídu StringBuilder 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čená: