黑马程序员技术交流社区
标题:
Integer的一些算法问题!
[打印本页]
作者:
吴华二
时间:
2012-3-25 15:19
标题:
Integer的一些算法问题!
public class IntegerTest {
public static void main(String[] args) {
objPoolTest();
}
public static void objPoolTest() {
Integer i1 = 40;
Integer i2 = 40;
Integer i3 = 0;
Integer i4 = new Integer(40);
Integer i5 = new Integer(40);
Integer i6 = new Integer(0);
System.out.println("i1=i2\t" + (i1 == i2));
System.out.println("i1=i2+i3\t" + (i1 == i2 + i3));
System.out.println("i4=i5\t" + (i4 == i5));
System.out.println("i4=i5+i6\t" + (i4 == i5 + i6));
System.out.println();
}
}
输出结果如下:
i1=i2 true
i1=i2+i3 true
i4=i5 false
i4=i5+i6 true
可是我看到i4=i5+i6的时候,为什么输出的结果是true呢?不是false,而i4=i5又为false,太不解了...知道的朋友帮忙解决一下。
作者:
万正
时间:
2012-3-25 15:23
本帖最后由 万正 于 2012-3-25 15:25 编辑
i4==i5+i6相当于40==40+0,都是int类型了,因为两个对象不能相加,自动拆箱了;
i4==i5是两个对象在比较,所以是false。我是这么理解的~不一定准确~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2