In Java, these are the difference between String, String Builder and String Buffer:
| String |
String Buffer |
String Builder |
| Immutable (cannot be changed after creation) |
Mutable (can be changed after creation) |
Mutable (can be changed after creation) |
| Thread Safe (Can be used across threads) |
Thread Safe (Can be used across threads) |
Not thread safe |
| Performance is good |
Performance is slow due to synchronized overhead |
Performance is good |
| '+' operation can be used in String to add two strings |
'+' operation is not allowed |
'+' operation is not allowed |
| Stored in constant String pool |
Stored in Heap area of memory |
Stored in Heap area of memory |