Как вычисляется hashCode

by @javainterview
Как вычисляется hashCode

В HotSpot можно выбрать один из 6 режимов генерации hashCode

 0 – Park-Miller RNG (был по умолчанию раньше (узнать когда))

 1 – f(адрес, глобальное_состояние)

 2 – константа 1

 3 – последовательный счетчик

 4 – адрес объекта

 5 – Thread-local Xorshift (по умолчанию)

Раньше по умолчанию в HotSpot hashCode генерировался на основе генератора случайных чисел. При этом вызывался метод System.identityHashCode(). Вычисление происходило только при первом вызове метода hashCode, для последующих вызовов он брался из заголовка объекта.

July 19, 2018
by Александр Васильевич