java怎么打印每个对象的内存地址呢?hashcode能代表内存地址的不同吗?
黄舟
黄舟 2017-04-18 10:16:13
0
4
566

java怎么打印每个对象的内存地址呢?hashcode能代表内存地址的不同吗?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(4)
黄舟
  1. Je me souviens que ce n’est pas autorisé. Quelle est la raison pour laquelle vous imprimez l’adresse mémoire ?

  2. Hashcode ne signifie pas nécessairement que les adresses mémoire sont différentes. Différentes JVM ont des implémentations différentes.

伊谢尔伦

Le hashCode() de l'objet renvoie l'adresse mémoire par défaut, mais hashCode() peut être réécrit, donc hashCode() ne peut pas représenter différentes adresses mémoire

La méthode System.identityHashCode(Object) peut renvoyer l'adresse mémoire de l'objet, que la classe de l'objet remplace ou non la méthode hashCode()

Peter_Zhu

La méthode toString de la classe Java Object imprime l'adresse de la variable de référence par défaut. Si elle n'imprime pas l'adresse, alors toString a été remplacé dans la sous-classe. Vous pouvez essayer de remplacer toString

.
PHPzhong

Lisez attentivement l'API JDK
Le protocole général de hashCode est :

  • Lors de l'exécution d'une application Java, la méthode hashCode doit systématiquement renvoyer le même entier lorsqu'elle est appelée plusieurs fois sur le même objet, à condition que les informations utilisées pour égaliser les objets ne soient pas modifiées. Cet entier n'a pas besoin d'être cohérent d'une exécution d'une application à une autre exécution de la même application.

  • Si deux objets sont égaux selon la méthode equals(Object), alors l'appel de la méthode hashCode sur chacun des deux objets doit produire le même résultat entier.

  • Si deux objets ne sont pas égaux selon la méthode equals(java.lang.Object), alors l'appel de la méthode hashCode sur l'un ou l'autre objet n'est pas nécessaire pour produire des résultats entiers différents. Cependant, les programmeurs doivent être conscients que la génération de résultats entiers différents pour des objets inégaux peut améliorer les performances des tables de hachage.
    En fait, la méthode hashCode définie par la classe Object renvoie différents entiers pour différents objets. (Cela se fait généralement en convertissant l'adresse interne de l'objet en nombre entier, mais le langage de programmation JavaTM ne nécessite pas cette technique d'implémentation.)

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!