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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小虎199406 中级黑马   /  2015-6-22 10:28  /  595 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请教一下各位   为什么会是这样
  1. Integer m=128;
  2. Integer n=128;
  3. Syatem.out.println(m==n);
复制代码
结果是false !!!!!!!!到底怎么回事    谢谢

评分

参与人数 1技术分 +2 收起 理由
lwj123 + 2

查看全部评分

3 个回复

倒序浏览
  1. Integer m=128;
复制代码

完成了自动装箱操作,相当于执行了
  1. Integer m = new Integer(m);
复制代码

所以你做了两次装箱,虽然值一样,但却是new了两个不同的对象
我想Integer类不想String,应该是没有复写equals方法,所以你直接用==比,比的应该是两个对象的
地址值并不是你认为的赋予的值,这是两个不同的对象,地址值当然不会相同
回复 使用道具 举报
上边写错了,应该是
  1. Integer m = new Integer(128);
复制代码
回复 使用道具 举报
byte范围是:-128~127,超过范围会开辟新空间,所以如果是127那么就是true,可以试一下!
回复 使用道具 举报 0 1
您需要登录后才可以回帖 登录 | 加入黑马