Nie jestem w stanie zrozumieć, jak działa Java Constant Pool for Integer.Dlaczego zachowanie puli stałej Integer zmienia się na 127?
Rozumiem zachowanie ciągów znaków, a tym samym jestem w stanie usprawiedliwić się, że jest tak samo w przypadku całek całkowitych.
Tak, 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
Aż tu wszystko dzieje się w mojej głowie.
Co ja nie jestem w stanie strawić to, że zachowuje się inaczej, kiedy zwiększyć całkowitą od 127. Takie zachowanie zmian po 127, poniżej jest kod snippet
Integer i1 = 128;
Integer i2 = 128;
System.out.println(i1==i2); // False. WHY?????
Czy ktoś mógłby mi pomóc to zrozumieć?
http://stackoverflow.com/questions/1700081/why-does-128-128-return-false-but-127-127-return-true-when-converting-to -integ? lq = 1 –