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