Copyright (c) 2005 Brian Goetz and Tim Peierls.
Released under the Creative Commons Attribution License
(http://creativecommons.org/licenses/by/2.5)
Official home: http://www.jcip.net
Adopted from Java Concurrency in Practice.
This annotation documents that instances of the annotated class are immutable. This means that its state is seen to others as
never being changed, even though the actual private internal state may indeed change. Therefore, in an immutable class:
- all public fields are final; and
- all public final reference fields refer to other immutable objects; and
- constructors and methods do not publish references to any internal state which is potentially mutable by the
implementation.