Diferența dintre StringBuffer și StringBuilder în Java

Diferența cheie - șir vs StringBuffer vs StringBuilder în Java
 

String, StringBuffer și String Builder sunt clase în Java. Șirul este utilizat pe scară largă în programarea Java. Odată ce un obiect al unui șir este creat, nu este posibil să le schimbați. De fiecare dată când se produce o schimbare în String, se creează un String nou. Chiar dacă este o concatenare cu un String existent, acesta creează un nou String. Acest lucru cauzează pierderi de memorie. Clasele StringBuffer și StringBuilder din Java sunt folosite pentru a modifica String. diferența cheie între String, StringBuffer și StringBuilder în Java este asta String este o clasă pentru a crea un obiect de tip String care este o secvență de caractere, StringBuffer este o clasă care este utilizată pentru a modifica șirul care asigură siguranța firului, iar StringBuilder este o clasă care este utilizată pentru a modifica șiruri care nu asigură siguranța firului.

CUPRINS

1. Prezentare generală și diferență cheie
2. Ce este String în Java
3. Ce este StringBuffer în Java
4. Ce este StringBuilder în Java
5. Asemănări între StringBuffer String și StringBuilder în Java
6. Comparație comparație între părți - String vs StringBuffer vs StringBuilder în Java în formă tabulară
7. rezumat

Ce este String în Java?

String-ul este în pachetul java.lang. De fiecare dată când programatorul creează un String, acesta este un obiect de tip String. Șirurile sunt imuabile, odată ce obiectul este creat, nu poate fi schimbat. Obiectele create folosind clase de wrapper cum ar fi Integer, Byte, Float, Double sunt de asemenea imuabile. Un literal șir este inclus în ghilimele duble. de exemplu. "Salut Lume". De fiecare dată când a fost creat un literal șir, Java Virtual Machine (JVM) verifică piscina constantă String. Dacă există String, se returnează o referință la piscina constantă String. Dacă este un String nou, acel obiect este creat în piscina constantă String.

Figura 01: Programul Java folosind String, StringBuffer și StringBuilder

Consultați codul de mai jos.

String s1 = "Bună ziua";

s1 = s1 + "Lumea";

System.out.println (s1);

În prima declarație, s1 se referă la "Bună ziua" din piscina constantă String. În a doua declarație, JVM nu modifică Stringul existent. În schimb, creează un nou șir ca "Hello World" și s1 se referă acum la acel nou șir. Obiectul existent "Hello" există în continuare în pool-ul constant al șirului.

Dacă există un cod care este,

String s1 = "Bună ziua";

String s2 = s1;

s1, s2 ambele vor face trimitere la obiectul String "Hello".

Ce este StringBuffer în Java?

Clasa StringBuffer este folosită pentru a face obiectele String mutable. Prin urmare, aceste obiecte pot fi modificate. StringBuffer definește patru constructori. StringBuffer (), StringBuffer (dimensiunea int), StringBuffer (String str), StringBuffer (charSequence [] ch)

Consultați codul de mai jos,

StringBuffer s1 = nou StringBuffer ("Hello");

s1.append ( „World“);

System.out.println (s1);

În instrucțiunea 1, s1 se referă la obiectul "Hello" într-o grămadă. Obiectul este mutable deoarece este creat folosind StringBuffer. În declarația 2, "Lumea" este atașată la același obiect "Hello" String.

Obiectele de caractere create cu clasa StringBuffer pot economisi memorie. StringBuffer asigură siguranța firelor, deoarece două fire nu pot accesa simultan aceeași metodă în clasa StringBuffer. Securitatea filetelor reduce performanța StringBuffer. Clasa StringBuffer conține metode cum ar fi append (), insert (), inversă (), replace ().

Ce este StringBuilder în Java?

Clasa StringBuilder este utilizată pentru a face obiectele String mutable. Prin urmare, aceste obiecte pot fi modificate. Funcționalitatea este similară cu cea a StringBuffer, dar acest lucru nu asigură siguranța firelor. StringBuilder are constructori precum StringBuilder (), StringBuilder (dimensiune int), StringBuilder (String str).

Consultați codul de mai jos.

StringBuilder s1 = nou StringBuilder ("Hello");

s1.append ( „World“);

System.out.println (s1);

În instrucțiunea 1, s1 se referă la obiectul "Hello" într-o grămadă. Obiectul este mutable deoarece este creat folosind StringBuilder. În declarația 2, "Lumea" este atașată la același obiect "Hello" String. Nu există nicio creație a unui obiect String complet nou.

Obiectele de caractere create cu clasa StringBuilder pot economisi memorie. Spre deosebire de StringBuffer, StringBuilder nu asigură siguranța firelor, deoarece două fire pot accesa simultan aceeași metodă în clasa StringBuilder. Clasa StringBuilder conține metode precum append (), insert (), inversă (), replace ().

Care este similitudinea dintre String, StringBuffer și StringBuilder în Java?

  • Toate pot fi folosite pentru a crea Corzi.

Care este diferența dintre StringBuffer String și StringBuilder în Java?

String vs StringBuffer vs StringBuilder

Şir Șirul este o clasă Java care este utilizată pentru a crea un obiect de tip String, care este o secvență de caractere.
StringBuffer StringBuffer este o clasă Java care este utilizată pentru a crea obiecte String, care pot fi modificate cu siguranța firelor.
StringBuilder StringBuilder este o clasă care este utilizată pentru a crea obiecte șir, care pot fi modificate fără siguranța firului.
Mutabilitate
Şir Șirul este o clasă imuabilă.
StringBuffer StringBuffer este o clasă mutable.
StringBuilder StringBuilder este o clasă mutable.
Securitatea filetului
Şir Metodele de șir sunt thread-uri sigure.
StringBuffer Metodele lui StringBuffer sunt sigure și sincronizate cu fir.
StringBuilder Metodele lui StringBuilder nu sunt sigure și nu sunt sincronizate.
Performanţă
Şir Șirul este rapid.
StringBuffer StringBuffer este lent.
StringBuilder StringBuilder este rapid.

Rezumat - String vs StringBuffer vs StringBuilder în Java 

Stringul, StringBuffer și StringBuilder par să fie aceleași, dar au semnificații diferite. Toate acestea sunt clase Java. Diferenta dintre String, StringBuffer si StringBuilder in Java este aceea ca String este o clasa pentru a crea un obiect de tip String, care este un set de caractere, StringBuffer este o clasa care este folosita pentru a modifica siruri si a asigura securitatea firului, in timp ce StringBuilder este un clasa care este utilizată pentru a modifica șiruri care nu asigură siguranța firului.

Descărcați versiunea PDF String vs StringBuffer vs StringBuilder în Java

Puteți descărca versiunea PDF a acestui articol și o puteți utiliza în scopuri offline conform notei de citare. Descărcați versiunea PDF aici Diferența dintre StringBuffer și StringBuilder în Java

Referinţă:

1. "String vs StringBuffer vs StringBuilder." JournalDev, 30 iulie 2017. Disponibil aici
2. "Java Hungry." Diferența dintre clasele StringBuilder și StringBuffer cu exemplu: Java | Java Hungry. Disponibil aici 
3.tutorialspoint.com. "Corzi Java". PunctulDisponibil aici