Diferența dintre String Buffer și StringBuilder în Java

Cuprins:

Diferența dintre String Buffer și StringBuilder în Java
Diferența dintre String Buffer și StringBuilder în Java

Video: Diferența dintre String Buffer și StringBuilder în Java

Video: Diferența dintre String Buffer și StringBuilder în Java
Video: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, Iulie
Anonim

Diferența cheie – String vs StringBuffer vs StringBuilder în Java

String, StringBuffer și String Builder sunt clase în Java. String este utilizat pe scară largă în programarea Java. Odată ce un obiect String este creat, nu este posibil să-l schimbe. De fiecare dată când apare o modificare a șirului, acesta creează un șir nou. Chiar dacă este o concatenare cu un șir existent, acesta creează un șir nou. Acest lucru provoacă pierderea memoriei. Clasele StringBuffer și StringBuilder în Java sunt folosite pentru a modifica String. Diferența cheie dintre String, StringBuffer și StringBuilder în Java este că String este o clasă pentru a crea un obiect de tip String care este o secvență de caractere, StringBuffer este o clasă care este folosită pentru a modifica șiruri care oferă siguranță firului, iar StringBuilder este un clasă care este utilizată pentru a modifica șirurile care nu asigură siguranța firelor.

Ce este String în Java?

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

Diferența dintre String StringBuffer și StringBuilder în Java
Diferența dintre String StringBuffer și StringBuilder în Java
Diferența dintre String StringBuffer și StringBuilder în Java
Diferența dintre String StringBuffer și StringBuilder în Java

Figura 01: Program Java care utilizează 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 grupul de constante String. În a doua declarație, JVM nu modifică șirul existent. În schimb, creează un șir nou ca „Hello World”, iar s1 se referă acum la acel șir nou. Obiectul „Hello” care iese încă mai există în grupul de constante String.

Dacă există un cod care este, String s1=”Bună ziua”;

String s2=s1;

s1, s2 ambele se vor referi la obiectul String „Bună ziua”.

Ce este StringBuffer în Java?

Clasa StringBuffer este folosită pentru a face obiectele String modificabile. Prin urmare, acele obiecte pot fi modificate. StringBuffer definește patru constructori. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Consultați codul de mai jos, StringBuffer s1=nou StringBuffer(„Bună ziua”);

s1.append(„Lumea”);

System.out.println(s1);

În declarația 1, s1 se referă la obiectul „Bună ziua” într-o grămadă. Obiectul este mutabil deoarece este creat folosind StringBuffer. În declarația 2, „World” este atașat aceluiași obiect String „Hello”.

Obiectele String create cu clasa StringBuffer pot economisi memorie. StringBuffer oferă siguranță pentru fire, deoarece două fire nu pot accesa aceeași metodă în clasa StringBuffer simultan. Siguranța firului scade performanța StringBuffer. Clasa StringBuffer conține metode precum append(), insert(), reverse(), replace().

Ce este StringBuilder în Java?

Clasa StringBuilder este folosită pentru a face obiectele String modificabile. Prin urmare, acele obiecte pot fi modificate. Funcționalitatea este similară cu StringBuffer, dar aceasta nu asigură siguranța firelor. StringBuilder are constructori precum StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Consultați codul de mai jos.

StringBuilder s1=nou StringBuilder(„Bună ziua”);

s1.append(„Lumea”);

System.out.println(s1);

În declarația 1, s1 se referă la obiectul „Bună ziua” într-o grămadă. Obiectul este mutabil deoarece este creat folosind StringBuilder. În declarația 2, „World” este atașat aceluiași obiect String „Hello”. Nu există nicio creare a unui obiect String complet nou.

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

Care este asemănarea dintre String, StringBuffer și StringBuilder în Java?

Toate pot fi folosite pentru a crea șiruri

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

String vs StringBuffer vs StringBuilder

String Șirul este o clasă Java care este folosită pentru a crea un obiect de tip String, care este o secvență de caractere.
StringBuffer StringBuffer este o clasă Java care este folosită pentru a crea obiecte String, care pot fi modificate cu siguranță pentru fire.
StringBuilder StringBuilder este o clasă care este folosită pentru a crea obiecte șir, care pot fi modificate fără siguranța firelor.
Mutabilitatea
String Șirul este o clasă imuabilă.
StringBuffer StringBuffer este o clasă mutabilă.
StringBuilder StringBuilder este o clasă mutabilă.
Siguranța firelor
String Metodele String sunt sigure pentru fire.
StringBuffer Metodele StringBuffer sunt sigure pentru fire și sunt sincronizate.
StringBuilder Metodele StringBuilder nu sunt sigure pentru fire și nu sunt sincronizate.
Performanță
String Șirul este rapid.
StringBuffer StringBuffer este lent.
StringBuilder StringBuilder este rapid.

Rezumat – String vs StringBuffer vs StringBuilder în Java

String, StringBuffer și StringBuilder par a fi aceleași, dar au semnificații diferite. Toate acestea sunt clase Java. Diferența dintre String, StringBuffer și StringBuilder în Java este că, String este o clasă pentru a crea un obiect de tip String, care este un set de caractere, StringBuffer este o clasă care este folosită pentru a modifica șirurile și pentru a oferi siguranță firului, în timp ce StringBuilder este un clasă care este utilizată pentru a modifica șirurile care nu asigură siguranța firelor.

Descărcați 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 nota de citare. Vă rugăm să descărcați versiunea PDF aici Diferența dintre String Buffer și StringBuilder în Java

Recomandat: