关于两个Integer对象值的比较:
Integer a=new Integer(9);
Integer b=new Integer(9);
a.intValue()==b.intValue()得到的值是true;
----
第一个比较:a==b的到的值是false;
这是两个integer引用的比较,也就是引用类型(复合类型)的比较,而两者都是调用new标识符构造的,所以会在堆内存里开辟两块不同的空间存放对象,==比较的是引用(内存地址),所以最终结果是false。
第二种比较:a.intValue()==b.intValue() 得到的值是true;
两个integer类型的引用调用intvalue方法后的比较,其实是值的比较。
Integer a=new Integer(9);
Integer b=new Integer(9);
a.intValue()==b.intValue()得到的值是true;
----
第一个比较:a==b的到的值是false;
这是两个integer引用的比较,也就是引用类型(复合类型)的比较,而两者都是调用new标识符构造的,所以会在堆内存里开辟两块不同的空间存放对象,==比较的是引用(内存地址),所以最终结果是false。
第二种比较:a.intValue()==b.intValue() 得到的值是true;
两个integer类型的引用调用intvalue方法后的比较,其实是值的比较。