Comment bien comparer deux nombres Entiers en Java?

Je sais que si vous comparez un coffret primitif Entier avec une constante telle que:

Integer a = 4;
if (a < 5)

a sera automatiquement unboxed et la comparaison sera travail.

Cependant, ce qui se passe lorsque vous comparez deux en boîte Integers et souhaitez comparer les sexes ou supérieur/inférieur?

Integer a = 4;
Integer b = 5;

if (a == b)

Permettra de code ci-dessus résultat de la vérification pour voir si elles sont le même objet, ou d'une auto-unbox dans ce cas?

Ce sujet:

Integer a = 4;
Integer b = 5;

if (a < b)

?

  • Eh bien, ce qui s'est passé lorsque vous avez essayé? Qu'avez-vous observer?
  • Kiers: explicite de L'expérience ne pouvait réfuter, ne prouve pas que unboxing se produit. Si vous utilisez == au lieu de equals donne le résultat correct, cela peut être parce que la boîte contenant les numéros sont internés ou autrement réutilisés (comme une optimisation du compilateur, sans doute). La raison de poser cette question est de savoir ce qui se passe en interne, et non pas ce qui semble se passer. (Au moins, c'est pourquoi je suis ici.)
InformationsquelleAutor | 2009-10-03