- Strings are immutable
- A new instance of string is returned when each time a string manipulation occurs
- StringBuilder is mutable
- an ArrayList of strings are maintained internally, and are added or updated based on the operations performed.
- no new instance is created and a single string is returned when we call the ToString() method