Когда класс в Java не переопределяет hashCode(), печать экземпляра этого класса дает хороший уникальный номер.
Javadoc of Object говорит о hashCode():
Насколько разумно практично, метод hashCode, определенный классом Object, возвращает разные целые числа для разных объектов.
Но когда класс переопределяет hashCode(), как я могу получить это уникальный номер?