黑马程序员技术交流社区

标题: Java中,两个byte类型数据相加为什么会报错 [打印本页]

作者: LOVE你的ME    时间: 2014-11-17 14:46
标题: Java中,两个byte类型数据相加为什么会报错
byte b=4;
byte b1=3;
byte b2=7;
b=b1+b2;      //这样是计算不出b,是错误的
b=b1+7;        //这样也是计算不出b
byte b=3+7;  //怎么这样又可以计算?

我刚开始学  看到了这样的答案  希望有跟我一样不理解的也能看到:

//b = 3+7;
  /*
  b取值范围:-128~127
  编译器在编译时(byte类型取值是有限的)他在判断右边的数值的时候发现是int类型(是“常量”), 但他会判断是不是在byte字节范围之内,如果在的话,会给右边的int类型做默认的强转,他把最后的一个字节(byte八个二进制)赋值到了b这个变量当中
  */

/*
  b1和b2是“变量”意味着这两值不确定、可能随时变化,编译器无法检查,也无法确定是否在byte字节范围之内, 他检查不了就会报错(可能丢失精度),如果是“常量”编译器就能够判断了



作者: wf111sxwf    时间: 2014-11-17 20:08
byte的取值范围太小了
作者: wanmei0398    时间: 2014-11-17 20:40
make一下,同求,没注意过啊




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