An object which can express itself by some unique string.
Two objects that produce the same identifier string can be considered
equivalent by some metric. The main use case for these identifiers is as a
weak form of long-term serialization:
- An object's identifier is saved to long-term storage such as disk.
- Later, in a new JVM, the identifier is retrieved from disk.
- An existing index of objects is queried to find the object (if any) whose
identifier matches the retrieved one.
In this way, objects themselves do not need to be
do multiple potentially equivalent objects need to be synthesized and then