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