Possible en double:
Using == operator in Java to compare wrapper objectswrappers primitives de comparaison
version java 1.6.0_26
d'un livre pour la préparation de l'examen SCJP:
Afin d'économiser de la mémoire, deux instances des objets encapsuleurs [courts et entiers à partir de -128 et 127, et d'autres, mais sans importance] (créés par boixng), seront toujours == lorsque leur primitive les valeurs sont les mêmes.
Ce que je l'ai fait:
Si nous comparons deux entier -128 à 127 comme ceci:
1. Integer i1 = 10;
2. Integer i2 = 10;
3. System.out.println(i1 == i2); // true
Mais pourquoi même nous donner « faux » ou peut-être ce n'est pas les mêmes choses:
4. Integer i3 = new Integer(10);
5. Integer i4 = new Integer(10);
6. System.out.println(i3 == i4); // false
Mes questions:
1) Est-ce que sur la 1ère ligne de code on fait de la boxe implicite?
2) Pourquoi les 3e et 6e lignes de code nous donnent des résultats différents?
Vous a raison! C'est un doublon. – user485553