public class WrapperTest {
    public static void main(String[] args) {
        Integer i = 100;
        Integer j = 100;
        if(i == j)
            System.out.println("same");
        else
            System.out.println("not same");
    }
   }
Вышеприведенный код выводит результат same при запуске, однако, если мы изменим значение i и j на 1000, выход изменится на not same. Поскольку я готовлюсь к SCJP, нужно понять эту концепцию. Может кто-то объяснить это поведение. Спасибо.