Indicates that a type has pure value semantics.
Formally:
- It is final, or all of its subtypes are guaranteed to have pure value semantics.
- It is strictly and deeply immutable, and therefore inherently thread-safe.
- It has correct
equals
, hashCode
,
and toString
implementations.
- It has no interaction with input/output whatsoever.
- It has no interaction with locks or concurrency mechanisms whatsoever.