Bonjour à tous,
Je fais appel à vos talents pour m'expliquer ce qui se passe dans le bout de code suivant :
A l'exécution il m'affiche bien "i1 non égal à i2". Jusque la d'accord, puisque i1 et i2 sont 2 objets différents, et ce sont ici les références qui sont comparées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Integer i1 = 1000; Integer i2 = 1000; if(i1 != i2) System.out.println("i1 non égal à i2"); Integer i3 = 127; Integer i4 = 127; if(i3 != i4) System.out.println("i3 non égal à i4");
Cependant à ma grande surprise, il n'affiche pas "3 non égal à i4" !
Par contre si je fixe la valeur des variables i3 et i4 à 128 (au lieu de 127), la il m'affiche bien "i3 non égal à i4" !
Conclusion, si 2 Integer sont égaux et inférieurs à 128, java les considére égaux. Cependant si ils sont supérieurs à 128, ils ne sont plus égaux...
Si quelqu'un peut m'éclairer...
Partager