首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

关于自动装箱拆箱有关问题

2012-10-06 
关于自动装箱拆箱问题Integer a 1Integer b 2Integer c 3Integer d 3Integer e 321Integer

关于自动装箱拆箱问题
Integer a = 1;
Integer b = 2;
Integer c = 3;
Integer d = 3;
Integer e = 321;
Integer f = 321;
Long g = 3L;
System.out.println(c == d);
System.out.println(e == f);
System.out.println(c == (a + b));
System.out.println(c.equals(a + b));
System.out.println(g == (a + b));
System.out.println(g.equals(a + b));
输出是:
true
false
true
true
true
false

没搞懂,为啥?

[解决办法]

探讨

Integer e = 321;
Integer f = 321;

System.out.println(e == f);

最有争议的应该是这个

正如1楼所说

当值是 -128 ~ 127 的时候 Integer判断是直接用的int原始数据类型 所以为 == 为true

当超出这个范围的时候 则是new了一个对象 == 就为false了

热点排行