However, there are many benefits of programming with immutable objects.
- Immutable objects are thread-safe so you will not have any synchronization issues.
- Immutable objects are good Map keys and Set elements, since these typically do not change once created.
- Immutability makes it easier to write, use and reason about the code (class invariant is established once and then unchanged)
- Immutability makes it easier to parallelize your program as there are no conflicts among objects.
- The internal state of your program will be consistent even if you have exceptions.
- References to immutable objects can be cached as they are not going to change.
6 Benefits of Programming with Immutable Objects in Java