Como a JVM garante que System.identityHashCode () nunca será alterado?

Normalmente, a implementação padrão deObject.hashCode() é alguma função do endereço alocado do objeto na memória (embora isso não seja exigido peloJLS). Dado que a VM evita objetos na memória, por que o valor retornado porSystem.identityHashCode() nunca muda durante a vida do objeto?

Se for um cálculo "one-shot" (o objetivo éhashCode é calculado uma vez e armazenado no cabeçalho do objeto ou algo assim), então isso significa que é possível que dois objetos tenham o mesmoidentityHashCode (se acontecer de eles serem primeiro alocados no mesmo endereço na memória)?

questionAnswers(5)

yourAnswerToTheQuestion