我无法理解整数的 Java 常量池是如何工作的。
我了解字符串的行为,因此能够证明自己与整数常量的情况相同。
所以,对于整数
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?????
有人可以帮我理解这一点吗?