Ce que tu a fait toi, c'est crée deux instances de la class Integer, en les initialisant, tu a modifié les valeurs de chacun de leurs attributs value, qui est de type int, (i1.value == 1000, i2.value == 1000), ensuite, si tu fait
Tu vas tester les deux references des instances, i1 et i2, par contre si tu met, i1.intValue (), la méthode intValue () vas retournée la valeur contenue dans l’attribue value de l'instance i1, donc tester deux entier, pas deux references des instances de la class Integer .