July 19, 2018
Как вычисляется hashCode
В HotSpot можно выбрать один из 6 режимов генерации hashCode
0 – Park-Miller RNG (был по умолчанию раньше (узнать когда))
1 – f(адрес, глобальное_состояние)
2 – константа 1
3 – последовательный счетчик
4 – адрес объекта
5 – Thread-local Xorshift (по умолчанию)
Раньше по умолчанию в HotSpot hashCode генерировался на основе генератора случайных чисел. При этом вызывался метод System.identityHashCode(). Вычисление происходило только при первом вызове метода hashCode, для последующих вызовов он брался из заголовка объекта.