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

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

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

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

StringBuffer срещу StringBuilder

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

Какво е StringBuffer?

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

Какво е StringBuilder?

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

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

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

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