Java的包装类Integer使用“==”运算的规则
在前两篇博文,我们讨论了比较运算符“== ”,还重点剖析了字符串变量使用“== ”运算的规则,得出了以下结论,即:当两个变量的值相等时(无论是基本类型变量还是引用类型变量),“== ”比较运算的结果会返回true。
这篇博文,我们重点剖析Java的包装类Integer使用“== ”运算的规则,首先看一个简单的例子:
public class IntegerTest
{
public static void main(String[] args)
{
//定义两个Integer对象
Integer i1 = 8;
Integer i2 = 8;
//打印 8== 8 :true
System.out.println(i1 + "== " + i2 +" :" + (i1== i2));
//再次定义两个Integer对象
Integer i11 = 128;
Integer i12 = 128;
//打印 128== 128 :false
System.out.println(i11 + "== " + i12 +" :" + (i11== i12));
}
}
程序第6行、7行定义了两个Integer对象i1、i2,它们的值都是8 ,第9行打印“== ”运算的结果为:8== 8 :true。接着,在第11行、12行定义了两个Integer对象i11、i12,它们的值都是128 ,第14行打印“== ”运算的结果为:128== 128 :false。同样是定义Integer对象,同样的赋值,但程序却出现了不同运行结果!是不是让人感到莫名其妙呢?
下面,我们用Java的“== ”运算规则对上面的结果进行分析,即:当两个变量的值相等时(无论是基本类型变量还是引用类型变量),“== ”比较运算的结果会返回true;否则返回false&