int a = 1;
Integer b = new Integer(1);
Integer c = a;
Integer d = 1;
System.out.println(a == b);
System.out.println(a == c);
System.out.println(b == c);
System.out.println(c == d);说明:1.5的环境,不要拿去运行哦,如果你全对了,揭帖的时候,给你加分。如果没有全对,面壁思过。
注:技术细节问题,若不屑于此"低级"问题,不要诋毁。
Integer b = new Integer(1);
Integer c = a;
Integer d = 1;
System.out.println(a == b);
System.out.println(a == c);
System.out.println(b == c);
System.out.println(c == d);说明:1.5的环境,不要拿去运行哦,如果你全对了,揭帖的时候,给你加分。如果没有全对,面壁思过。
注:技术细节问题,若不屑于此"低级"问题,不要诋毁。
true
true
true
同理System.out.println(a == b); System.out.println(a == c);也是错误的
Integer是int的封装类 a是基本类型 b,c,d是实例类型
猜吧,a==c==d,b单独
T
T
F
T
true
true
false
true
1.装箱用的是Integer.valueOf(int)
装箱时如果-128=<i<=127,那么返回的是整形缓存IntegerCache里的对象
2.拆箱用的是Integer.intValue();
System.out.println(a == b); //第2点
System.out.println(a == c); //第2点
System.out.println(b == c); //两个不同的对象
System.out.println(c == d); //第1点
true
true
false
true