String vs StringBuilder vs StringBuffer
STRING STRINGBUFFER STRINGBUILDER
Storage String Pool Heap Heap
Modifiable Immutable Mutable Mutable
Thread Safe YES YES NO
Performance FAST VERY SLOW FAST
The StringBuffer and StringBuilder class both produces mutable string objects.
The main difference between them is that StringBuffer is thread safe;
StringBuilder is not thread safe.
The main similarity between String and StringBuffer class is that both are
thread safe.
The main difference is that String is immutable; StringBuffer is mutable.
If a string is going to remain constant throughout the program,
then use the String class object because a String object is immutable.
If a string can change (for example: lots of logic and operations in the construction of the string)
and will only be accessed from a single thread, using a StringBuilder is good enough.
If a string can change and will be accessed from multiple threads,
use a StringBuffer because StringBuffer is synchronous,
so you have thread-safety.
If you don’t want thread-safety than you can also go with StringBuilder class as it is not synchronized.
The StringBuffer and StringBuilder class both produces mutable string objects.
The main difference between them is that StringBuffer is thread safe;
StringBuilder is not thread safe.
String is immutable and thread safe.
We are using StringBuffer when we are doing parallel
testing since it is a thread safe.
They both mutable, they are exactly same but
String buffer is thread safe so it runs slower
than String builder.
We are using StringBuffer when we are doing parallel
testing since it is a thread safe.
StringBuffer:
1. StringBuffer class is synchronized
2. It is thread-safe
3. It is slower than StringBuilder
StringBuilder:
1. StringBuilder class is not synchronized
2. It is not thread-safe
3. It is faster than StringBuffer