Maison  >  Article  >  Java  >  Quelle est la valeur de hachage de Java

Quelle est la valeur de hachage de Java

little bottle
little bottleoriginal
2019-05-21 17:27:5811233parcourir

Quelle est la valeur de hachage de Java

La valeur de hachage (hashcode) peut être comprise comme un encodage unique, une valeur récapitulative, etc. L'implémentation spécifique peut être une adresse mémoire, qui peut être utilisée en Java pour identifier si deux variables sont en fait le même objet. Pour un même objet, les valeurs à ce moment doivent être égales, mais différents objets peuvent aussi avoir des valeurs égales. Apprenons-en davantage ensemble.

Valeur de hachage (hashcode) dans différentes classes :

1. HashCode de la classe Object : Renvoie la structure traitée de l'adresse mémoire de l'objet. Ils sont tous différents, donc les codes de hachage sont également différents.

Pour que deux objets soient complètement relatifs, ils doivent avoir la même valeur de hachage. Comparez égal()

PS1 : Toute classe est une sous-classe indirecte de la classe Object, elle hérite donc de la méthode public int hashCode() La valeur renvoyée par cette méthode est généralement convertie en implémentée sous forme d'entier. Cela garantit que la valeur du code de hachage de chaque objet est différente

PS2 : L'adresse ici fait référence à l'adresse mémoire virtualisée par la JVM, et non à l'adresse mémoire physique réelle.

PS3 : La valeur de hachage et la valeur d'adresse sont différentes. La valeur de hachage est obtenue par hachage via l'algorithme de hachage, tandis que la valeur d'adresse est liée au niveau physique et est allouée par le système. sont identiques, et la valeur de hachage peut être définie pour être la même par des moyens forcés, c'est-à-dire que la valeur de hachage est une garantie logique d'unicité, tandis que la valeur d'adresse est une garantie physique d'unicité.

2. HashCode de la classe String : En fonction du contenu de la chaîne contenue dans la classe String, un code de hachage est renvoyé selon un algorithme spécial tant que le contenu de la chaîne est le même. pareil, le code de hachage renvoyé est également le même.

Comparez le contenu des chaînes pour vérifier l'égalité. Utilisez égal()

3. Classe entière hashCode : le code de hachage renvoyé est la valeur de l'entier contenu dans l'objet Integer.

Par exemple, Integer i1=new Integer(100), la valeur de i1.hashCode est 100.

On peut voir que deux objets Integer de même taille renvoient le même code de hachage.

Compare les types numériques compressés pour l'égalité. Utilisez égal()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn