我正在用下面的代码比较两个整数对象....为什么输出是“Both Integer are not equal...”虽然我在某处读到过,Integer或int将只在-128到127的范围内相等。为什么不是128?
Integer i1 = 128;
Integer i2 = 128;
if(i1!=i2){
System.out.println("Both integer are not equal...");
}
Javainteger
是引用类型,==
通常不会进行适当的比较。
但是,对于小数字,Java实现了一种与自动装箱连接的缓存机制,它使==
运算符能够对-128到127范围内的数字正常工作。
即,如果你这样做
Integer x = 12;
Integer y = 12;
boolean b = x==y;
Integer x = 200;
Integer y = 200;
boolean b = x==y;
我有以下代码: 结果如下: 但是将的类型更改为将产生不同的输出,例如: 新的输出: 怎么会这样?为什么第一个示例代码没有输出?
上述情况导致 上述条件返回。 为什么会这样?这些片段之间有什么区别?
如果两个集合包含相同的对象,如何进行比较? 当然会打印出假的。
我发现了一个有趣的事实,但我不知道是怎么发生的。
如果两个集合包含相同的对象,如何进行比较? 当然会打印错误。
问题内容: 我正在阅读Kathy Sierra和Bert Bates编写的SCJP Java 6,这本书让我非常困惑。在第245页上,他们声明以下代码。 然后在下一页上,它们具有以下代码 我很困惑!当我自己尝试该方法时,似乎无法使用==来比较使用equals()方法的方式。即使Integer变量设置为相同的值(即10),使用==总是给我’false’。我对么?使用==比较相同的Integer对象(