enhorse / java-interview

Вопросы и ответы к интервью Java разработчика
5.15k stars 1.89k forks source link

Ошибка в описании дефолтной реализации Object#hashCode #118

Closed hu553in closed 7 months ago

hu553in commented 2 years ago

https://github.com/enhorse/java-interview/blob/master/core.md#%D0%BA%D0%B0%D0%BA%D0%B8%D0%BC-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%BC-%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D1%8B-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-hashcode-%D0%B8-equals-%D0%B2-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B5-object

На самом деле, кажется, адрес памяти уже давно не используется. При сборке мусора объект может перемещаться из одной области памяти в другую (зависит от реализации сборщика), и тогда адрес памяти объекта меняется, и если хеш-код будет от него зависеть, то и хеш-код поменяется, а так быть не должно.

https://stackoverflow.com/questions/49172698/default-hashcode-implementation-for-java-objects (accepted answer) https://bugs.openjdk.org/browse/JDK-8199394