Java theory and practice: To mutate or not to mutate? immutable objects can greatly simplify your life (2003)

by Brian Goetz