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. Обобщение
Класът струни е в пакет 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 се използва, за да направи 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 се използва, за да направи 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 | StringBuffer е клас Java, който се използва за създаване на String обекти, които могат да бъдат модифицирани с безопасност на нишката. |
StringBuilder | StringBuilder е клас, който се използва за създаване на низови обекти, които могат да бъдат модифицирани без безопасност на нишката. |
изменчивост | |
низ | Низът е неизменен клас. |
StringBuffer | StringBuffer е променлив клас. |
StringBuilder | StringBuilder е променлив клас. |
Безопасност на резбата | |
низ | Методите на струните са безопасни за конци. |
StringBuffer | Методите на StringBuffer са безопасни за конци и се синхронизират. |
StringBuilder | Методите на StringBuilder не са безопасни с резба и не са синхронизирани. |
производителност | |
низ | Низът е бърз. |
StringBuffer | StringBuffer е бавен. |
StringBuilder | StringBuilder е бърз. |
String, StringBuffer и StringBuilder изглежда са еднакви, но имат различно значение. Всичко това са Java класове. Разликата между String, StringBuffer и StringBuilder в Java е, че String е клас за създаване на обект от тип String, който е набор от знаци, StringBuffer е клас, който се използва за промяна на низовете и осигуряване на безопасност на нишката, докато StringBuilder е клас, който се използва за модифициране на струни, което не осигурява безопасност на нишката.
Можете да изтеглите 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 струни.“ Точката. Налични тук