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

Ключова разлика - низ срещу StringBuffer срещу StringBuilder в Java
 

String, StringBuffer и String Builder са класове в Java. String се използва широко в Java програмирането. След като се създаде обект на String, не е възможно да ги промените. Всеки път, когато настъпи промяна в String, той създава нов String. Дори и да е свързване към съществуващ String, той създава нов String. Това причинява загуба на памет. Класовете StringBuffer и StringBuilder в Java се използват за модифициране на String. Най- ключова разлика между String, StringBuffer и StringBuilder в Java е това String е клас за създаване на обект от тип String, който е поредица от знаци, StringBuffer е клас, който се използва за промяна на Strings, осигуряваща безопасност на нишката, а StringBuilder е клас, който се използва за модифициране на струни, които не осигуряват безопасност на нишката.

СЪДЪРЖАНИЕ

1. Преглед и ключова разлика
2. Какво е String в Java
3. Какво е StringBuffer в Java
4. Какво е StringBuilder в Java
5. Прилики между String StringBuffer и StringBuilder в Java
6. Паралелно сравнение - String срещу StringBuffer срещу StringBuilder в Java в таблична форма
7. Обобщение

Какво е String в Java?

Класът струни е в пакет java.lang. Всеки път, когато програмистът създаде String, той е обект от тип String. Низовете са неизменни значения, след като обектът е създаден, той не може да бъде променен. Обектите, създадени с помощта на класове за обвиване като Integer, Byte, Float, Double, също са неизменни. Строен буквал е затворен в двойни кавички. например "Здравей свят". Всеки път, когато се създава стринг литерал, виртуалната машина на Java (JVM) проверява пула за постоянна струна. Ако String съществува, връща се препратка към константата на String. Ако е нов String, този обект се създава в константата на String.

Фигура 01: Java програма, използваща String, StringBuffer и StringBuilder

Вижте по-долу част от кода.

String s1 = “Здравей”;

s1 = s1 + „Свят“;

System.out.println (s1);

В първото изявление s1 се отнася до "Здравей" в пула за константа String. Във второто изявление JVM не променя съществуващия String. Вместо това, той създава нов String като "Hello World" и s1 сега се позовава на този нов String. Излизащият „Hello“ обект все още съществува в константата на String.

Ако има код, който е,

String s1 = “Здравей”;

Низ s2 = s1;

s1, s2 и двете ще се отнасят към String обекта "Здравей".

Какво е StringBuffer в Java?

Класът StringBuffer се използва, за да направи String обектите да се изменят. Следователно тези обекти могат да бъдат модифицирани. StringBuffer дефинира четири конструктора. StringBuffer (), StringBuffer (int размер), StringBuffer (String str), StringBuffer (charSequence [] ch)

Вижте кода по-долу,

StringBuffer s1 = нов StringBuffer („Здравейте“);

s1.append ( "World");

System.out.println (s1);

В изявление 1, s1 се отнася до обекта "Здравей" в грамада. Обектът е изменяем, защото е създаден с помощта на StringBuffer. В изявление 2 „World“ е добавен към същия обект „Hello“ String.

Струнните обекти, създадени с клас StringBuffer, могат да спестят памет. StringBuffer осигурява безопасност на нишката, тъй като две нишки не могат да имат достъп до един и същ метод в клас StringBuffer едновременно. Намаляване на безопасността на резбата StringBuffer. Класът StringBuffer съдържа методи като append (), insert (), reverse (), substitute ().

Какво е StringBuilder в Java?

Класът StringBuilder се използва, за да направи String обектите да се изменят. Следователно тези обекти могат да бъдат модифицирани. Функционалността е подобна на StringBuffer, но това не осигурява безопасност на нишката. StringBuilder има конструктори като StringBuilder (), StringBuilder (int size), StringBuilder (String str).

Вижте кода по-долу.

StringBuilder s1 = нов StringBuilder („Здравейте“);

s1.append ( "World");

System.out.println (s1);

В изявление 1, s1 се отнася до обекта "Здравей" в грамада. Обектът е изменяем, защото е създаден с помощта на StringBuilder. В изявление 2 „World“ е добавен към същия обект „Hello“ String. Няма създаване на напълно нов String обект.

Струнните обекти, създадени с клас StringBuilder, могат да спестят памет. За разлика от StringBuffer, StringBuilder не осигурява безопасност на нишката, защото две нишки могат да имат достъп до един и същ метод в клас StringBuilder едновременно. Класът StringBuilder съдържа методи като append (), insert (), reverse (), substitute ().

Какво е сходството между String, StringBuffer и StringBuilder в Java?

  • Всичко може да се използва за създаване на струни.

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

String срещу StringBuffer срещу StringBuilder

низ Низът е клас Java, който се използва за създаване на обект от тип String, който е последователност от знаци.
StringBuffer StringBuffer е клас Java, който се използва за създаване на String обекти, които могат да бъдат модифицирани с безопасност на нишката.
StringBuilder StringBuilder е клас, който се използва за създаване на низови обекти, които могат да бъдат модифицирани без безопасност на нишката.
изменчивост
низ Низът е неизменен клас.
StringBuffer StringBuffer е променлив клас.
StringBuilder StringBuilder е променлив клас.
Безопасност на резбата
низ Методите на струните са безопасни за конци.
StringBuffer Методите на StringBuffer са безопасни за конци и се синхронизират.
StringBuilder Методите на StringBuilder не са безопасни с резба и не са синхронизирани.
производителност
низ Низът е бърз.
StringBuffer StringBuffer е бавен.
StringBuilder StringBuilder е бърз.

Обобщение - низ срещу StringBuffer срещу StringBuilder в Java 

String, StringBuffer и StringBuilder изглежда са еднакви, но имат различно значение. Всичко това са Java класове. Разликата между String, StringBuffer и StringBuilder в Java е, че String е клас за създаване на обект от тип String, който е набор от знаци, StringBuffer е клас, който се използва за промяна на низовете и осигуряване на безопасност на нишката, докато StringBuilder е клас, който се използва за модифициране на струни, което не осигурява безопасност на нишката.

Изтеглете PDF String срещу StringBuffer срещу StringBuilder на Java

Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели, съгласно цитираната бележка. Моля, изтеглете PDF версия тук Разлика между String StringBuffer и StringBuilder в Java

справка:

1. „String срещу StringBuffer срещу StringBuilder.“ JournalDev, 30 юли 2017. Достъпно тук
2. „Java Hungry“. Разлика между класове String, StringBuilder и StringBuffer с пример: Java | Java гладен. Налични тук 
3.tutorialspoint.com. „Java струни.“ Точката. Налични тук