I\'ve read a couple of articles on immutability but still don\'t follow the concept very well.
I made a thread on here recently which mentioned immutability, but as
Why Immutability?
They are less prone to error and are more secure.
Immutable classes are easier to design, implement, and use than mutable classes.
Immutable objects are thread-safe so there is no 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 program as there are no conflicts among objects.
The internal state of program will be consistent even if you have exceptions.
References to immutable objects can be cached as they are not going to change.(i.e in Hashing it provide fast operations).
See my blog for a more detailed answer:
http://javaexplorer03.blogspot.in/2015/07/minimize-mutability.html