当前页面: 开发资料首页 → J2SE 专题 → 【散分】[PoemCode]八句话考你是不是理解==和boxing/unboxing
【散分】[PoemCode]八句话考你是不是理解==和boxing/unboxing
摘要: 【散分】[PoemCode]八句话考你是不是理解==和boxing/unboxing
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的环境,不要拿去运行哦,如果你全对了,揭帖的时候,给你加分。如果没有全对,面壁思过。
注:技术细节问题,若不屑于此-#34;低级-#34;问题,不要诋毁。
做自己的沙发,--惯例
JDK5,了解太少了,坐着听课
扪几个先,偶还在用1.42
true
true
true
true
Integer c = a; Integer d = 1; 两边的类型不同 c是Integer a是int 不能赋值
同理System.out.println(a == b); System.out.println(a == c);也是错误的
Integer是int的封装类 a是基本类型 b,c,d是实例类型
坦白讲不知道jdk版本有啥区别
猜吧,a==c==d,b单独
5.0 之后支持自动装箱/拆箱, LZ想考这个吧?
T
T
F
T
boxing/unboxing 知道一点 但不知道为什么 第3个是False
顶顶~~ 接接分~~~
true
true
false
true
true
true
false
true
搞清楚一下几点就可以了。
1.装箱用的是Integer.valueOf(int)
装箱时如果-128=-#60;i-#60;=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点
result:
true
true
false
true
个人觉得这些只有理论价值,实际应用中不会写这些不论不类的代码,不然会被维护的人骂死,呵呵~~~~~~~~~~
楼上诸位稍候,等我忙完手头上的事,简单总结一下,给各位送分。