/ / java função hashCode () na variável de referência e objetos - java, hashcode

Função java hashCode () na variável de referência e objetos - java, hashcode

Por exemplo, se eu criar um objeto do tipo A,

A a = new A();

então a é uma referência na pilha que aponta paraa Um objeto de tipo no heap. Minha pergunta é, se eu chamar a.hashCode (), qual código hash será retornado, o código hash da referência ou o hashcode do objeto? se for o hashcode do objeto, como posso obter o hashcode da referência? Alguém poderia gentilmente me dar algumas dicas plz?

Respostas:

3 para resposta № 1

hashCode() é apenas um método não estático, como qualquer outro método não-estático. Ela é definida por A, ou por uma classe base de A (Object, no pior dos casos). Tudo o que acontece é que o método é chamado na instância em questão.

Como posso obter o hashcode da referência?

Você não pode, porque isso não faz sentido.


0 para resposta № 2

Você pode obter o código hash da referência chamando:

System.identityHashCode(a);

É assim que estruturas de dados como java.util.IdentityHashMap são baseadas.