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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yin12310 中级黑马   /  2016-7-4 19:17  /  543 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

3.给定java代码,如下:
public byte count(byte b1, byte b2){
        return _(byte)(b1-b2)___;
}
为什么横线处是(byte)(b1-b2),而不是 b1-b2,

public int count(int b1,int b2){
       return b1-b2;
}
为什么这里能返回 b1-b2 呢?

2 个回复

倒序浏览


第一处代码块, b1-b2,虽然两个都是byte值,但是在运算的时候回自动提升为int类型的.返回值是byte类型的,塞不下.需要强制转换~
第二处代码块b1-b2int类型的,返回值类型也是int类型的,合适~
回复 使用道具 举报
byte类型变量做算术运算,会自动提示int类型,因为jvm不知道变量的值会不会超出-128~127范围。所以编译出错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马