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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

李小石

初级黑马

  • 黑马币:27

  • 帖子:15

  • 精华:0

© 李小石 初级黑马   /  2014-5-27 00:09  /  1093 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李小石 于 2014-5-27 09:50 编辑
  1. public class Test_4 {

  2.         public static void main(String[] args) {
  3.          int a =2;
  4.          byte b = 2;
  5.          
  6.          if(a == b){
  7.                  System.out.print(true);
  8.          }
  9.      }

  10. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1 继续努力。

查看全部评分

8 个回复

倒序浏览
忘了注释,问题没出来
回复 使用道具 举报
a,b的数据类型不同,为什么结果却是可以打印为真了?
回复 使用道具 举报
int 2等于是0000 0000  0000 0000  0000 0000  0000 0010
byte 2等于是0000 0010
==比较他们两个的二进制值是相等的。
回复 使用道具 举报
我认为这个问题要考虑数据类型提升的情况,整数的默认类型是int型,byte型数据参与运算,会自动提升为int型
回复 使用道具 举报
附耳细说 来自手机 中级黑马 2014-5-27 01:06:38
地板
楼上  正解
我补充下吧
整数表达式可以是int基本类型或Integer包装类型
byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型是可以当做整型使用的。为什么可以转换楼上的楼上给出了答案,不错就是字节长度截取。这就是为什么相等的原因。
同理还可以进一步思考,如果把byte改成double或者float,猜猜会得到什么结果?如果byte和int取值大于128,会是什么结果?然后想想为什么,然后你就学会了类型转换,吐槽下     手机打字好不方便~

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1 掌握的不错。

查看全部评分

回复 使用道具 举报
附耳细说 发表于 2014-5-27 01:06
楼上  正解
我补充下吧
整数表达式可以是int基本类型或Integer包装类型

谢谢啦,非常感谢
回复 使用道具 举报
==  符号比较的是两边的值是否相等,equas 符号比较的是两边的值的地址是否一样,所以答案是true
回复 使用道具 举报
学习了!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马