KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 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...
SMMM@
Messages postés13Date d'inscriptionlundi 4 janvier 2016StatutMembreDerniè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
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 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).
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.
SMMM@
Messages postés13Date d'inscriptionlundi 4 janvier 2016StatutMembreDernière intervention 1 février 2016
>
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024 10 janv. 2016 à 20:18