为什么整数常量池的行为在 127 处发生变化?
我无法理解 Java Constant Pool for 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?????
有人能帮我理解这一点吗?