Hashcode()

Résolu
SMMM@
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
- 10 janv. 2016 à 14:22
informaticien_yassine
Messages postés
1
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
11 janvier 2016
- 11 janv. 2016 à 01:14
bonsoir svp j'ais deux question
c'est quoi un hashcode???!
ce que signifie un moniteur on java ??! et merci d'avance
A voir également:

3 réponses

KX
Messages postés
16566
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
3 juillet 2022
124
10 janv. 2016 à 15:25
Bonjour,

Un hashcode est un entier avec ces propriétés :
  • Si x1.equals(x2) alors x1.hashCode()==x2.hashCode()
  • Si x1.hashCode()!=x2.hashCode() alors !x1.equals(x2)

Même si ce n'est pas obligatoire, on devrait avoir "le plus souvent possible"
  • Si !x1.equals(x2) alors x1.hashCode()!=x2.hashCode()
  • Si x1.hashCode()==x2.hashCode() alors x1.equals(x2)

Cela permet de faire des optimisations, car comparer exhaustivement deux objets peut être coûteux quand il y a beaucoup de champs à comparer.
La comparaison de deux hashCode étant plus légère cela permet en général de déterminer que deux objets sont différents sans avoir à utiliser la méthode equals.

"ce que signifie un moniteur on java"
Pour moi ça ne veut rien dire, il va falloir être plus précis...
0
SMMM@
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016

10 janv. 2016 à 19:40
merci KX
pour le moniteur j'ai trouver quelque part dans un cour la méthode notify() Cette méthode est appelée uniquement dans un moniteur permettant de réveiller l’un d’entre les processus qui se sont fait bloquer dans ce même moniteur.et j'ai pas bien compris ça
0
KX
Messages postés
16566
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
3 juillet 2022
124
10 janv. 2016 à 20:06
Le "moniteur" c'est le verrou associé à chaque objet quand il est utilisé pour faire de la synchronisation (en vieux Java).

Voir Intrinsic Locks and Synchronization.

Depuis Java 5 les packages java.util.concurrent fournissent un grand nombre de classes dédiés à la gestion de la concurrence.

Voir High Level Concurrency Objects

Il ne devrait donc plus être nécessaire d'utiliser les méthodes wait, notify, notifyAll ni le mot clé synchronized qui sont difficiles à comprendre et dont une mauvaise utilisation peut entraîner de nombreux bugs difficiles à corriger.
0
SMMM@
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
> KX
Messages postés
16566
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
3 juillet 2022

10 janv. 2016 à 20:18
merci beaucoup :)
0
informaticien_yassine
Messages postés
1
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
11 janvier 2016

11 janv. 2016 à 01:14
hashcode sera utile lorsque on veut par exemple faire une set sans répétition pour etre sur de cette condition on a besoin d'un equal et hashcode
0