Обычно стандартная реализация Object.hashCode()
- это некоторая функция выделенного адреса объекта в памяти (хотя это не обязано JLS). Учитывая, что VM шунтирует объекты в памяти, почему значение, возвращаемое System.identityHashCode()
, никогда не изменяется во время жизни объекта?
Если это "одноразовый" расчет (объект hashCode
вычисляется один раз и спрятан в заголовке объекта или что-то в этом роде), значит, это означает, что два объекта могут иметь одинаковый identityHashCode
( если они сначала распределяются по одному и тому же адресу в памяти)?