... is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the Java™ programming language.