Разлика между StringBuffer и StringBuilder

Разлика между StringBuffer и StringBuilder
Разлика между StringBuffer и StringBuilder

Видео: Разлика между StringBuffer и StringBuilder

Видео: Разлика между StringBuffer и StringBuilder
Видео: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, Декември
Anonim

StringBuffer срещу StringBuilder

Java е много популярен обектно-ориентиран език. В Java класът String е предвиден да съдържа поредица от символи, които не могат да бъдат модифицирани (след като бъдат инициализирани). Алтернативно, езикът за програмиране Java предоставя два типа изменяеми последователности от символи. Тоест, когато програмистите трябва да модифицират определен String (след инициализация), те трябва да използват клас StringBuffer или клас StringBuilder, вместо клас String. StringBuffer беше въведен в JDK 1.0, а класът StringBuilder беше въведен в JDK 1.5, всъщност като заместител на класа StringBuffer (за среди с една нишка).

Какво е StringBuffer?

Класът StringBuffer е въведен в JDK 1.0. Класът StringBuffer принадлежи към пакета java.lang и се наследява от общия java.lang.object. Програмистите не могат да го разширят допълнително, тъй като това е последен клас. Класът StringBuffer изпълнява сериализуеми, добавяеми и CharSequience интерфейси. Обект от класа StringBuffer може да съдържа последователност от символи, която е променлива и безопасна за нишки. Това означава, че е много подобен на обект String, но последователността от символи (дължина и съдържание) може да бъде променена по всяко време след инициализиране на обекта StringBuffer. Това обаче трябва да се направи, като се използват специфичните методи, предоставени от класа StringBuffer. Има две основни операции в клас StringBuffer. Те се предоставят чрез методите append () и insert (). Тези методи са претоварени,така че те са в състояние да приемат данни от всякакъв тип като цяло число и дълги. И двата метода първо трансформират всеки вход в низ и след това добавя (добавя или вмъква) символите на съответния низ към съществуващия обект Stribbuffer. Методът append () добавя преобразувания низ в края на съществуващия обект StringBuffer, докато методът insert () ще добави входните символи към посочената точка на вмъкване.

Какво е StringBuilder?

Класът StringBuilder е въведен в JDK 1.5. API на StringBuilder много прилича на API на StringBuffer. Всъщност класът StringBuilder всъщност беше въведен като заместител на класа StringBuffer (за приложения с една нишка). Класът StringBuilder принадлежи към пакета java.lang и се наследява от общия java.lang.object. Това е краен клас и затова програмистите не могат да го разширят. Класът StringBuilder реализира сериализуеми, добавяеми и CharSequience интерфейси. Обект от класа StringBuilder може да съдържа последователност от символи, която е променлива, но не е безопасна за нишки. Това означава, че е много подобен на обект String, но низът може да бъде променен по всяко време. Но класът StringBuilder не осигурява синхронизация и поради това се твърди, че е по-бърз от използването на клас StringBuffer. Класът StringBuilder осигурява методи append () и insert () с точно подобна функционалност, както в класа StringBuffer.

Каква е разликата между StringBuffer и StringBuilder?

Въпреки че класовете StringBuilder и StringBuffer могат да се използват за променливи последователности от символи в Java, те имат ключова разлика. За разлика от клас StringBuffer, класът StringBuilder не е безопасен за нишки и не осигурява синхронизация. Следователно се препоръчва класът StringBuilder да се използва вместо клас StringBuffer в приложения с една нишка, тъй като се твърди, че класът StringBuilder ще бъде много по-бърз от класа StringBuffer (при нормални обстоятелства).

Препоръчано: