我正在阅读Kathy Sierra和Bert Bates的《SCJP Java 6》,但是这本书让我感到非常困惑。在第245页,他们列出了以下代码。
Integer i1 = 1000;
Integer i2 = 1000;
if(i1 != i2)
System.out.println("different objects");
//Prints output
different objects
然后在接下来的页面上,他们有以下代码
Integer i3 = 10;
Integer i4 = 10;
if(i3 == i4)
System.out.println("same objects");
//Prints output
same objects
我很困惑!当我自己尝试时,似乎不能像使用equals()方法一样使用"=="来进行比较。即使Integer变量设置为相同的值(例如10),使用"=="始终会给我返回'false'。我是正确的吗?使用"=="比较相同值的Integer对象将始终导致返回'false'