Dlaczego zachowanie stałej puli Integer zmienia się na 127?
Nie jestem w stanie zrozumieć, jak działa Java Constant Pool dla Integer.
Rozumiem zachowanie ciągów znaków, a zatem jestem w stanie usprawiedliwić się, że to samo dotyczy również stałych całkowitych.
Więc dla liczb całkowitych
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
Do tej pory wszystko idzie w mojej głowie.
To, czego nie mogę przetrawić, zachowuje się inaczej, gdy zwiększam liczbę całkowitą z 127. To zachowanie zmienia się po 127, poniżej znajduje się fragment kodu
Integer i1 = 128;
Integer i2 = 128;
System.out.println(i1==i2); // False. WHY?????
Czy ktoś może mi pomóc to zrozumieć?