下面跟大家讲解一个JDK1.5版本后,Integer类类型出现的一个新特性。如下所示,有两段代码 ,请写出输出结果:
class Demo
{
public static void main(String[] args)
{
Integer m=128;
Integer n=128;
Integer a=127,b=127;
System.out.println(m==n);
System.out.println(a==b);
}
}
输出结果的如下:
false
true
大家 对于 上面的输出结果肯定存有疑问,因为m, n, a, b是 四个Integer对象,用等号比较相等,应该是不相等才对。这是因为a和b指向了同一个 Integer对象,新特性中 ,当数值 在byte范围内是,如果该数值已经存在,则不会开辟新的 空间,所以a和 b实际上 是 指向同一个对象,故输出true。