【发布时间】:2012-08-10 23:03:14
【问题描述】:
可能重复:
Integer wrapper objects share the same instances only within the value 127?
public class test
{
public static void main(String args[])
{
Integer a1=127;
Integer a2=127;
System.out.println(a1==a2); //output: true
Integer b1=128;
Integer b2=128;
System.out.println(b1==b2); //output: false
Long c1=127L;
Long c2=127L;
System.out.println(c1==c2); // output: true
Long d1=128L;
Long d2=128L;
System.out.println(d1==d2); //output: false
}
}
输出:
true false true false
您也可以使用负值。当您观察带有值的输出时,它们的行为会有所不同。造成如此不同结果的原因是什么?
对于任何数字,范围应为 -127 到 +127,则 == 为真或为假。
(全部) 伙计们,对不起,这是一个拼写错误,我错误地把它当作原始的,但它是抽象的。对不起这个错误。现已更正...
【问题讨论】:
-
那些不是原始数据类型。用
int和long试试,它会按预期运行。 -
哦,这是我的最爱。它出现在 SO 某处的“最奇怪的代码行为”线程中。
标签: java memory memory-management jvm shared-memory