String
- Immutable
- Thread-safe by default (immutable, no need extra sync)
- Stored in String Pool (a storage area in Heap)
- String have high chance to be the same value, so try to decrease a lot of same String object.
- If object is mutable, cant share, since keep changing.
- Hence, String is immutable.
- Also dafer in case of Hashtables / HashMaps, to ensure getting the immutable value.

// String name = “MH”; in string pool
// String name = new String(”MH”); in heap
StringBuilder
- Heap memory is the storage area.
- Mutable.
- Fastest.
- Not thread-safe.
StringBuffer
- Heap memory is the storage area.
- Mutable.
- Thread-safe.