Where to use a StringBuffer/StringBuilder than a String in Java?
- The String class objects are immutable whereas the StringBuffer and the StringBuilder objects are mutable.
- A StringBuffer is synchronized while a StringBuilder is not synchronized.
- A Concatenation operator "+" is internally implemented using either StringBuffer or StringBuilder.
- If the Object value is not going to change use String Class because a String object is immutable.
- If the Object value can change and will only be accessed from a single thread, use a StringBuilder because StringBuilder is unsynchronized.
- If the Object value can change and will be modified by multiple threads, use a StringBuffer because StringBuffer is synchronized.