A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Dora 中级黑马   /  2014-3-4 23:55  /  1127 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int e = 1;
Integer f = new Integer(1);
System.out.println(e==f);
int e = 1;
Integer f = new Integer(1);
System.out.println(e==f);

为什么输出的是true?
“==”比较符在基本类型比较的是具体值,在引用类型比较的是引用值,e的值是1,f是引用,为什么能是相等的呢?  难道f的引用值也是1?
想不明白,请求解答

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

4 个回复

倒序浏览
1.5版本新特性里的自动装箱和自动拆箱,int e自动装箱成Integer,或者Integer(1)自动拆箱成int e =1,然后==两边类型就一样了。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
自动装箱与自动拆箱
回复 使用道具 举报
自动拆装箱,Integer类型拆成int基本类型,==比较的就是数值了。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
给你个参考地址,说的蛮详细的。
http://www.ticmy.com/?p=110
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马