站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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



个人觉得这些只有理论价值,实际应用中不会写这些不论不类的代码,不然会被维护的人骂死,呵呵~~~~~~~~~~


楼上诸位稍候,等我忙完手头上的事,简单总结一下,给各位送分。


↑返回目录
前一篇: 急急!!
后一篇: java的GUI,想让它达到windows的效果