Java 为什么(整数)1==(整数)1返回true,而(整数)200==(整数)200返回false?

Java 为什么(整数)1==(整数)1返回true,而(整数)200==(整数)200返回false?,java,Java,我试图打印结果,但无法找到背后的原因。任何帮助都将不胜感激。我想我们正在谈论的是: Java有一种非常奇怪的存储整数的方法。我可以给你一个很长的答案,那就是 长话短说,当整数超过127时,它们的长度变得太长,无法正常存储,因此它们之间的默认比较运算符无法正常工作。如果您需要进行这种比较,我建议您使用其他一些数字类型,但通常只存储它们并使用.equals函数即可-它会按值比较对象。例如: //in some package , inside some function // if((Integer

我试图打印结果,但无法找到背后的原因。任何帮助都将不胜感激。

我想我们正在谈论的是:

Java有一种非常奇怪的存储整数的方法。我可以给你一个很长的答案,那就是

长话短说,当整数超过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.
   }

什么语言?如何打印?给我们看一些代码。这是什么语言?我试着用java打印:System.out.println Integer1==Integer 1;System.out.println Integer200==整数200;我试过用java语言。那么,当它超过127个极限时会发生什么呢。@gautamtyagi链接对此描述得很好:当整数超过127时,它们的长度变得太长,无法正常存储,因此它们之间的默认比较运算符不能正常工作-这不是一个很好/正确的解释。