metode hashCode de String ... je comprend pas ! - Programmation
Marsh Posté le 28-07-2002 à 15:41:31
Allez, je prends un risque :
si tu as une autre classe qui appelle cette methode pendant qu'il est en train de calculer ta hashcode, n'y a t-il pas un risque, meme infime, que value puisse changer ?
donc a ce moment la, en le stockant dans une variable locale, tu n'as plus le risque de voir ta variable value changer.
Et un essai, un
Marsh Posté le 28-07-2002 à 16:06:56
pas bete. De plus synchronized sur une String ... bof
Marsh Posté le 28-07-2002 à 17:28:05
alien_nan a écrit a écrit : Allez, je prends un risque : si tu as une autre classe qui appelle cette methode pendant qu'il est en train de calculer ta hashcode, n'y a t-il pas un risque, meme infime, que value puisse changer ? donc a ce moment la, en le stockant dans une variable locale, tu n'as plus le risque de voir ta variable value changer. Et un essai, un |
ben non ... pourquoi ca changerait ? String est immuable !
et puis en plus, si value change, val va changer aussi puiqu'ils pointent tous les deux sur le même objet ...
Marsh Posté le 28-07-2002 à 17:28:21
DarkLord a écrit a écrit : pas bete. De plus synchronized sur une String ... bof |
hein ?
Marsh Posté le 28-07-2002 à 18:51:19
vraiment ... personne a d'idée ???
ils devaient bien avoir une raison les dev de chez sun !!
Marsh Posté le 28-07-2002 à 14:44:03
salut tout le monde.
Je viens de regarder le code source de la classe String et y a un truc que je capte pas dans l'implémentation de la méthode HashCode.
voici son code (jdk 1.3) :
la question que je me pose c'est : à quoi ca sert de déclarer les variables val et len ??? pourquoi ne pas avoir tout simplement utilisé les variables value et count ??? Les objets String sont immuables, donc de toute façon les valeurs de ces variables ne changerons pas.
Doit bien y avoir une raison ...
pkoi ne pas avoir écrit tout simplement ca :
alors, y a un truc bête qui m'échappe ?