Я не могу понять, как работает Java Constant Pool для Integer.
Я понимаю поведение строк и, следовательно, могу оправдать себя, что это тот же случай с константами Integer.
Итак, для целых чисел
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1==i2); // True
&
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1==i2); // False
До сих пор все идет мне в голову.
То, что я не могу переварить, это ведет себя по-разному, когда я увеличиваю целое число с 127. Это поведение меняется после 127, ниже - фрагмент кода
Integer i1 = 128;
Integer i2 = 128;
System.out.println(i1==i2); // False. WHY?????
Может кто-нибудь помочь мне понять это?