黑马程序员技术交流社区

标题: 请教一个javaEE面试题 [打印本页]

作者: 施天宇    时间: 2016-7-6 11:37
标题: 请教一个javaEE面试题
第一题:
                byte b1=3,b2=4,b;
                b=b1+b2;
                b=3+4;
                哪句是编译失败的呢?为什么呢?

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

第三题:
                byte b = 10;
                b++;
                b = b + 1;
                哪句是编译失败的呢?为什么呢?
作者: 18343105017    时间: 2016-7-6 13:00
首先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之间
作者: 18343105017    时间: 2016-7-6 13:04
第二题:因为byte类型的取值范围是-128~127之间,130超出了byte的范围,是int类型的,所有会报ype mismatch: cannot convert from int to byte;要解决的话就把byte换成int:  int by = 130;
作者: 18343105017    时间: 2016-7-6 13:06
第三题: 第二行的b++运算会强转回byte类型的,没问题,第三行的b+1运算完会自动转换为int类型,无法赋值给byte类型的byte,会报Type mismatch: cannot convert from int to byte;
作者: 18343105017    时间: 2016-7-6 13:08
哥们,你这三个题都是最基础的题,这些玩意完全可以自己去验证,最好就别发论坛了,估计只有我这么闲的无聊的人会回复...
作者: xfbyxq    时间: 2016-7-6 14:03
第一题  b=b1+b2会报错   byte类型参与运算会转成int    需要墙砖。第二提    130大于byte的取值范围 第三提:b=b+1 也是byte+1会转成int




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2