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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 施天宇 中级黑马   /  2016-7-6 11:37  /  811 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

第一题:
                byte b1=3,b2=4,b;
                b=b1+b2;
                b=3+4;
                哪句是编译失败的呢?为什么呢?

第二题:
                byte  by = 130;有没有问题?有问题如何解决?结果是多少呢?

第三题:
                byte b = 10;
                b++;
                b = b + 1;
                哪句是编译失败的呢?为什么呢?

5 个回复

倒序浏览
首先javaEE是不会考这个的,这只是java基础;-----------------------第一题:b1,b2,b都被定义为byte类型的,第二行的b1+b2运算完后会自动转换为int类型,则无法赋值给byte类型的b,会报Type mismatch: cannot convert from int to byte,第三行把3+4的常量值7赋值给byte类型的b是没错的,因为7在byte的范围-128~127之间
回复 使用道具 举报
第二题:因为byte类型的取值范围是-128~127之间,130超出了byte的范围,是int类型的,所有会报ype mismatch: cannot convert from int to byte;要解决的话就把byte换成int:  int by = 130;
回复 使用道具 举报
第三题: 第二行的b++运算会强转回byte类型的,没问题,第三行的b+1运算完会自动转换为int类型,无法赋值给byte类型的byte,会报Type mismatch: cannot convert from int to byte;
回复 使用道具 举报
哥们,你这三个题都是最基础的题,这些玩意完全可以自己去验证,最好就别发论坛了,估计只有我这么闲的无聊的人会回复...
回复 使用道具 举报
第一题  b=b1+b2会报错   byte类型参与运算会转成int    需要墙砖。第二提    130大于byte的取值范围 第三提:b=b+1 也是byte+1会转成int
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马