Diferența dintre String, StringBuffer și StringBuilder în Java - Exemplu atașat

Publicat: 2022-01-30
Diferența dintre String, StringBuffer și StringBuilder în Java - Comparație și exemplu atașat

În acest tutorial Java vom analiza diferența dintre Java String, StringBuffer și StringBuilder.

Să începem:

Şir:

Clasa String reprezintă șiruri de caractere. Toate literalele șir din programele Java, cum ar fi „crunchify”, sunt implementate ca instanțe ale acestei clase. Șirurile sunt constante; valorile lor nu pot fi modificate după ce sunt create.

StringBuffer:

O secvență de caractere care poate fi folosită și poate fi mutată. Un buffer de șir este ca un șir, dar poate fi modificat.

În orice moment, conține o anumită secvență de caractere, dar lungimea și conținutul secvenței pot fi modificate prin anumite apeluri de metodă.

Bufferele de șiruri sunt sigure pentru utilizare de mai multe fire.

StringBuilder:

O secvență mutabilă de caractere. Această clasă oferă un API compatibil cu StringBuffer, dar fără garanție de sincronizare.

Această clasă este concepută pentru a fi utilizată ca înlocuitor pentru StringBuffer în locurile în care buffer-ul șir a fost folosit de un singur fir (cum este în general cazul).

Acolo unde este posibil, se recomandă ca această clasă să fie folosită de preferință StringBuffer, deoarece va fi mai rapidă în majoritatea implementărilor.

Să comparăm toate caracteristicile de mai jos ale String, StringBuffer și StringBuilder.

Şir StringBuffer StringBuilder
Fir de siguranta? da da Nu
Sincronizat? da da Nu
Modificabil? Nu (imuabil) Da (mutabil) Da (mutabil)
Depozitare String Pool Morman Morman
Performanţă Încet Rapid Mai repede

Cod Java:

  • Creați clasa: CrunchifyStringVsStringBufferVsStringBuilder.java
  • Pune codul de mai jos în el
  • Salvează fișierul

În acest tutorial, adăugăm și adăugăm șiruri de 199999 de ori.

Consola IntelliJ IDEA Rezultat:

Rulați programul de mai sus ca aplicație Java în IntelliJ IDEA sau în Consola Eclipse și veți avea ca rezultat ca mai jos.

Anunțați-mă dacă vă confruntați cu vreo problemă la rularea programului de mai sus sau aveți întrebări între String, StringBuffer și StringBuilder.