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

Съдържание:

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

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

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

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

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

Какво е низ в Java?

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

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

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

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

Низ s1=“Здравей”;

s1=s1 + “Свят”;

System.out.println(s1);

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

Ако има код, който е, Низ s1=”Здравей”;

Низ s2=s1;

s1, s2 и двете ще препращат към String обекта „Hello“.

Какво е StringBuffer в Java?

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

Вижте кода по-долу, StringBuffer s1=нов StringBuffer(“Здравей”);

s1.append(“Свят”);

System.out.println(s1);

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

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

Какво е StringBuilder в Java?

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

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

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

s1.append(“Свят”);

System.out.println(s1);

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

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

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

Всички могат да се използват за създаване на низове

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

Низ срещу StringBuffer срещу StringBuilder

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

Резюме – String срещу StringBuffer срещу StringBuilder в Java

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

Изтеглете PDF низ срещу StringBuffer срещу StringBuilder в Java

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

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