Differenza tra StringBuffer e StringBuilder

Differenza tra StringBuffer e StringBuilder
Differenza tra StringBuffer e StringBuilder

Video: Differenza tra StringBuffer e StringBuilder

Video: Differenza tra StringBuffer e StringBuilder
Video: Tapparella o persiane? Qual’è la scelta migliore? 2024, Luglio
Anonim

StringBuffer vs StringBuilder

Java è un linguaggio orientato agli oggetti molto popolare. In Java, la classe String viene fornita per contenere una sequenza di caratteri che non può essere modificata (una volta inizializzata). In alternativa, il linguaggio di programmazione Java fornisce due tipi di sequenze di caratteri mutevoli. Cioè, quando i programmatori devono modificare una determinata stringa (dopo l'inizializzazione), devono utilizzare la classe StringBuffer o la classe StringBuilder, invece della classe String. StringBuffer è stato introdotto in JDK 1.0 e la classe StringBuilder è stata introdotta in JDK 1.5, in re altà come sostituto della classe StringBuffer (per ambienti a thread singolo).

Cos'è StringBuffer?

La classe StringBuffer è stata introdotta in JDK 1.0. La classe StringBuffer appartiene al pacchetto java.lang ed è ereditata dal generico java.lang.object. I programmatori non possono estenderlo ulteriormente poiché è una classe finale. La classe StringBuffer implementa le interfacce Serializable, Appendable e CharSequience. Un oggetto della classe StringBuffer può contenere una sequenza di caratteri mutevole e thread-safe. Ciò significa che è molto simile a un oggetto String, ma la sequenza di caratteri (lunghezza e contenuto) può essere modificata in qualsiasi momento dopo l'inizializzazione dell'oggetto StringBuffer. Tuttavia, ciò dovrebbe essere fatto utilizzando i metodi specifici forniti dalla classe StringBuffer. Ci sono due operazioni principali nella classe StringBuffer. Sono forniti dai metodi append() e insert(). Questi metodi sono sovraccaricati, quindi sono in grado di accettare dati di qualsiasi tipo come interi e lunghi. Entrambi i metodi prima trasformano qualsiasi input in una stringa, quindi aggiungono (aggiunge o inserisce) i caratteri della stringa corrispondente all'oggetto Stribbuffer esistente. Il metodo append() aggiunge la stringa convertita alla fine dell'oggetto StringBuffer esistente, mentre il metodo insert() aggiungerà i caratteri di input al punto di inserimento specificato.

Cos'è StringBuilder?

La classe StringBuilder è stata introdotta in JDK 1.5. L'API StringBuilder è molto simile all'API StringBuffer. In effetti, la classe StringBuilder è stata effettivamente introdotta in sostituzione della classe StringBuffer (per applicazioni a thread singolo). La classe StringBuilder appartiene al pacchetto java.lang ed è ereditata dal generico java.lang.object. È una classe finale e quindi i programmatori non possono estenderla. La classe StringBuilder implementa le interfacce Serializable, Appendable e CharSequience. Un oggetto della classe StringBuilder può contenere una sequenza di caratteri che è mutabile ma non thread-safe. Ciò significa che è molto simile a un oggetto String, ma la stringa può essere modificata in qualsiasi momento. Ma la classe StringBuilder non fornisce la sincronizzazione e pertanto si dice che sia più veloce dell'utilizzo della classe StringBuffer. La classe StringBuilder fornisce metodi append() e insert() con funzionalità esattamente simili a quelle della classe StringBuffer.

Qual è la differenza tra StringBuffer e StringBuilder?

Anche se le classi StringBuilder e StringBuffer possono essere utilizzate per sequenze di caratteri mutabili in Java, hanno una differenza fondamentale. A differenza della classe StringBuffer, la classe StringBuilder non è thread-safe e non fornisce alcuna sincronizzazione. Pertanto, si consiglia di utilizzare la classe StringBuilder al posto della classe StringBuffer nelle applicazioni a thread singolo, poiché si afferma che la classe StringBuilder sarà molto più veloce della classe StringBuffer (in circostanze normali).

Consigliato: