Как JVM реализует IdentityHashMap? - PullRequest
5 голосов
/ 27 июня 2011

В частности, когда они используются с движущимися сборщиками мусора.Текущее расположение объекта в памяти нельзя использовать, поскольку оно может измениться при следующей коллекции, так что же используется в качестве хэша объектов?

Ответы [ 2 ]

5 голосов
/ 27 июня 2011
0 голосов
/ 27 июня 2011

Как отметил Пауло в своем комментарии, для этого используется System.identityHashCode().И из javadocs:

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

Итак, на самом деле вопрос сводится к «Что такое алгоритм hashCode по умолчанию?

...