Differenza tra String StringBuffer e StringBuilder in Java

Sommario:

Differenza tra String StringBuffer e StringBuilder in Java
Differenza tra String StringBuffer e StringBuilder in Java

Video: Differenza tra String StringBuffer e StringBuilder in Java

Video: Differenza tra String StringBuffer e StringBuilder in Java
Video: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, Dicembre
Anonim

Differenza chiave – String vs StringBuffer vs StringBuilder in Java

String, StringBuffer e String Builder sono classi in Java. String è ampiamente utilizzato nella programmazione Java. Una volta creato un oggetto di String, non è possibile modificarlo. Ogni volta che si verifica una modifica alla stringa, viene creata una nuova stringa. Anche se è una concatenazione a una stringa esistente, crea una nuova stringa. Questo provoca uno spreco di memoria. Le classi StringBuffer e StringBuilder in Java vengono utilizzate per modificare String. Il differenza fondamentale tra String, StringBuffer e StringBuilder in Java è quello String è una classe per creare un oggetto di tipo String che è una sequenza di caratteri, StringBuffer è una classe utilizzata per modificare Strings che fornisce thread safety e StringBuilder è un classe utilizzata per modificare le stringhe che non forniscono thread safety.

Cos'è String in Java?

La classe String è nel pacchetto java.lang. Ogni volta che il programmatore crea una String, è un oggetto di tipo String. Le stringhe sono immutabili, il che significa che una volta creato l'oggetto, non può essere modificato. Anche gli oggetti creati utilizzando classi wrapper come Integer, Byte, Float, Double sono immutabili. Una stringa letterale è racchiusa tra virgolette. per esempio. "Ciao mondo". Ogni volta che viene creata una stringa letterale, la Java Virtual Machine (JVM) controlla il pool di costanti String. Se la stringa esiste, viene restituito un riferimento al pool di costanti String. Se si tratta di una nuova stringa, quell'oggetto viene creato nel pool di costanti String.

Differenza tra String StringBuffer e StringBuilder in Java
Differenza tra String StringBuffer e StringBuilder in Java
Differenza tra String StringBuffer e StringBuilder in Java
Differenza tra String StringBuffer e StringBuilder in Java

Figura 01: Programma Java che utilizza String, StringBuffer e StringBuilder

Fai riferimento al codice sottostante.

Stringa s1=“Ciao”;

s1=s1 + “Mondo”;

System.out.println(s1);

Nella prima istruzione, s1 si riferisce a "Hello" nel pool di costanti String. Nella seconda istruzione, JVM non modifica la stringa esistente. Invece, crea una nuova stringa come "Hello World" e s1 ora si riferisce a quella nuova stringa. L'oggetto "Hello" in uscita esiste ancora nel pool di costanti String.

Se c'è un codice che è, Stringa s1=”Ciao”;

Stringa s2=s1;

s1, s2 si riferiranno entrambi all'oggetto String "Hello".

Cos'è StringBuffer in Java?

La classe StringBuffer viene utilizzata per rendere mutabili gli oggetti String. Pertanto, tali oggetti possono essere modificati. StringBuffer definisce quattro costruttori. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Fai riferimento al codice qui sotto, StringBuffer s1=new StringBuffer(“Ciao”);

s1.append("Mondo");

System.out.println(s1);

Nell'istruzione 1, s1 si riferisce all'oggetto "Hello" in un heap. L'oggetto è mutabile perché viene creato utilizzando StringBuffer. Nell'istruzione 2, "World" è aggiunto allo stesso oggetto String "Hello".

Gli oggetti String creati con la classe StringBuffer possono risparmiare memoria. StringBuffer fornisce thread safety perché due thread non possono accedere allo stesso metodo nella classe StringBuffer contemporaneamente. La sicurezza del thread riduce le prestazioni di StringBuffer. La classe StringBuffer contiene metodi come append(), insert(), reverse(), replace().

Cos'è StringBuilder in Java?

La classe StringBuilder viene utilizzata per rendere mutabili gli oggetti String. Pertanto, tali oggetti possono essere modificati. La funzionalità è simile a StringBuffer, ma ciò non fornisce la sicurezza del thread. StringBuilder ha costruttori come StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Fai riferimento al codice sottostante.

StringBuilder s1=new StringBuilder("Ciao");

s1.append("Mondo");

System.out.println(s1);

Nell'istruzione 1, s1 si riferisce all'oggetto "Hello" in un heap. L'oggetto è mutabile perché viene creato utilizzando StringBuilder. Nell'istruzione 2, "World" viene aggiunto allo stesso oggetto String "Hello". Non c'è creazione di un oggetto String completamente nuovo.

Gli oggetti String creati con la classe StringBuilder possono risparmiare memoria. A differenza di StringBuffer, StringBuilder non fornisce thread safety perché due thread possono accedere allo stesso metodo nella classe StringBuilder contemporaneamente. La classe StringBuilder contiene metodi come append(), insert(), reverse(), replace().

Qual è la somiglianza tra String, StringBuffer e StringBuilder in Java?

Tutto può essere utilizzato per creare stringhe

Qual è la differenza tra String StringBuffer e StringBuilder in Java?

String vs StringBuffer vs StringBuilder

Stringa La stringa è una classe Java utilizzata per creare un oggetto di tipo String, che è una sequenza di caratteri.
StringBuffer StringBuffer è una classe Java utilizzata per creare oggetti String, che possono essere modificati con thread safety.
StringBuilder StringBuilder è una classe utilizzata per creare oggetti stringa, che possono essere modificati senza thread safety.
Mutabilità
Stringa La stringa è una classe immutabile.
StringBuffer StringBuffer è una classe mutevole.
StringBuilder StringBuilder è una classe mutevole.
Sicurezza del filo
Stringa I metodi di stringa sono thread-safe.
StringBuffer I metodi di StringBuffer sono thread-safe e sincronizzati.
StringBuilder I metodi di StringBuilder non sono threaded safe e non sono sincronizzati.
Prestazioni
Stringa La stringa è veloce.
StringBuffer StringBuffer è lento.
StringBuilder StringBuilder è veloce.

Riepilogo – String vs StringBuffer vs StringBuilder in Java

String, StringBuffer e StringBuilder sembrano essere gli stessi, ma hanno significati diversi. Tutte queste sono classi Java. La differenza tra String, StringBuffer e StringBuilder in Java è che, String è una classe per creare un oggetto di tipo String, che è un insieme di caratteri, StringBuffer è una classe che viene utilizzata per modificare Strings e fornire thread safety, mentre StringBuilder è un classe utilizzata per modificare stringhe che non fornisce thread safety.

Scarica il PDF String vs StringBuffer vs StringBuilder in Java

Puoi scaricare la versione PDF di questo articolo e usarla per scopi offline come da nota di citazione. Si prega di scaricare la versione PDF qui Differenza tra String StringBuffer e StringBuilder in Java

Consigliato: