黑马程序员技术交流社区

标题: 今天考试有几道题有点疑惑 [打印本页]

作者: 清凉    时间: 2016-7-1 20:03
标题: 今天考试有几道题有点疑惑
其中有一个是这道
3.        给定java代码,如下:
public byte count(byte b1, byte b2){
        return ____;
}
要使这段代码能够编译成功,横线处可以填入
A.        (byte)(b1-b2)
B.   b1-b2
C.  (byte)b1+b2
D.  (byte)b1/b2

作者: 实习小建    时间: 2016-7-1 20:28
在java中,遇到+,-,*,/,%运算符的时候,遵循如下规则:
只要两个数据中有一个double类型的,另一个也会转为double类型,并且结果为double类型;
只要两个数据中有一个float类型的,另一个也会转为float类型,并且结果为float类型;
只要两个数据中有一个long类型的,另一个也会转为long类型,并且结果为long类型;
初此之外,(byte,short,int,char)两个操作数都会转为int类型,并且结构为int类型。

所以本题中只有A返回的是byte类型的数据,因为进行了数据的强转。
B,C,D最后都是两个byte类型的数据进行计算,所以都会转化为int类型,并且返回int类型的数据
作者: qinxuezilu1314    时间: 2016-7-1 20:42
楼上正解,就A对b1和b2的运算进行了括号,指的是运算结果进行强转,后面都是提升了数据类型到int上面了
作者: 他的好    时间: 2016-7-1 21:04
是的,楼上正解
作者: 云袭    时间: 2016-7-1 21:34
赞.........
作者: 940752944    时间: 2016-7-1 22:04
楼上的楼上正解
作者: shuiwa    时间: 2016-7-1 22:31
楼上正解
作者: rentianyn    时间: 2016-7-1 22:40
不错 涨姿势了
作者: 一面    时间: 2016-7-1 22:51
学习了~~
作者: happyburglar    时间: 2016-7-1 22:55
选D吧?
作者: Condy    时间: 2016-7-1 23:02
楼上正解
作者: suming    时间: 2016-7-1 23:08
学到了 谢谢
作者: axiaowenjin    时间: 2016-7-1 23:11
学到了,谢谢




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