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

Съдържание:

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

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

Видео: Разлика между String StringBuffer и StringBuilder в Java
Видео: Java для начинающих. Урок 23: StringBuilder 2024, Декември
Anonim

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

String, StringBuffer и String Builder са класове в Java. String се използва широко в програмирането на Java. След като обект от 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?

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

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

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

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

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

s1 = s1 + „Свят“;

System.out.println (s1);

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

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

Низ s2 = s1;

s1, s2 и двете ще се отнасят до String обекта “Hello”.

Какво е StringBuffer в Java?

Класът StringBuffer се използва, за да направи обектите на String променливи. Следователно тези обекти могат да бъдат модифицирани. StringBuffer дефинира четири конструктора. StringBuffer (), StringBuffer (int размер), 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?

Различна статия Средна преди таблица

String срещу 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 String срещу StringBuffer срещу StringBuilder в Java

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

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