Por que o comportamento do pool constante Integer é alterado em 127?
Eu não sou capaz de entender como funciona o Java Constant Pool for Integer.
Eu entendo o comportamento das cordas e, portanto, capaz de justificar-me que é o mesmo caso com Constantes Integrais também.
Então, para inteiros
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
Até aqui tudo vai na minha cabeça.
O que eu não sou capaz de digerir é, ele se comporta de maneira diferente quando eu aumento o inteiro de 127. Esse comportamento muda depois de 127, abaixo está o trecho de código
Integer i1 = 128;
Integer i2 = 128;
System.out.println(i1==i2); // False. WHY?????
Alguém pode me ajudar a entender isso?