Package javax.annotation.concurrent
Annotation Interface Immutable
The presence of this annotation indicates that the author believes the class to be immutable and hence inherently
thread-safe. An immutable class is one where the state of an instance cannot be seen to change. As a result
- All public fields must be
final - All public final reference fields are either
nullor refer to other immutable objects - Constructors and methods do not publish references to any potentially mutable internal state.
String is an immutable class, despite
having an internal int that is non-final but used as a cache for String.hashCode().
Immutable objects are inherently thread-safe; they may be passed between threads or published without
synchronization.