黑马程序员技术交流社区
标题:
byte相关问题
[打印本页]
作者:
陈君
时间:
2014-8-20 18:17
标题:
byte相关问题
本帖最后由 陈君 于 2014-8-22 16:20 编辑
byte b = 1 + 1; byte b = 1; b = b + 1;
上面的两行代码,第一行是对的,第二行是错的。
首先我知道第二行错误的原因是执行计算的时候b会自动转换成int型但是b是byte类型所以错了。只要b =(byte) b + 1;这样就正确了
但是那为什么第一行会错呢?1+1不是在执行运算嘛,不是应该结果是int型嘛?如果是说虚拟机自动执行了类型转换的话,那为什么
b = b + 1不执行类型转换呢?
作者:
刘挺
时间:
2014-8-22 15:08
这个视频有提到。b=b+1;在编译阶段,b作为变量,可能取很大的值,那样就超过了取值范围,所以会报错。走不到虚拟机那步。
作者:
刘挺
时间:
2014-8-22 15:09
b=b+1;在编译阶段,b作为变量,可能取很大的值,那样就可能超过了取值范围,所以会报错。走不到虚拟机那步。
作者:
付剑翊
时间:
2014-8-22 16:28
b=1+1;结果在byte范围内不会报错吧?
作者:
忆梦追风
时间:
2014-8-22 20:55
b是变量,因为是变量代表这个数可变,如果b是数据类型的最大值,加一就会超出存储空间了,常量就不会,因为数值不会变
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2