本帖最后由 夏添 于 2013-2-28 19:55 编辑
详见下面代码
byte a = 1;
byte b = 2;
byte c = a+b;
这段代码编译是不通过的,我找到了两种解释
1.来自于张孝祥教程的解释:所有位数低于int型的数运算结果都会自动提升为int型 ,
所以a + b的结果不能赋值给 byte型的 c ;(个人理解,这么做可能是方便java的运算)
2.来自朋友的解释,java在编译阶段,a和b都没有赋值, a+b的值可能超出byte范围,存在隐患,于是java虚拟机就让这段代码挂掉.(这java也太智能了吧..真替程序员着想..)\
朋友们,你们觉得到底是什么原因呢??? |