为什么(Integer)1 ==(整数)1返回true,但是(Integer)200 ==(整数)200返回false?

时间:2015-06-28 17:25:36

标签: java

我试图打印结果,但无法理解这背后的原因.Anyhelp将不胜感激。

1 个答案:

答案 0 :(得分:-1)

我想我们在谈论java? (:

Java有一种非常奇怪的存储整数的方法。我可以给你一个很长的答案,but can easily around forums. {{3}}

长话短说,当整数传递127时,它们的长度变得太长而无法正常存储,因此它们之间的默认比较运算符无法正常工作。如果你需要进行这种比较,我建议使用其他一些数字类型,但通常只是存储它们并使用.equals()函数可以做 - 它按值比较对象。例如:

//in some package , inside some function
// if((Integer)128==(Integer)128) 
// {
//    // this will never happen
// }
// if((Integer)128).equals((Integer)128))
   {
      // this will happen.
   }