首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

小知识点,大有关问题,对小弟我个人来说,求解。

2012-04-01 
小知识点,大问题,对我个人来说,求解。。。。byte b1 1//整数常量默认不是int的吗,为什么不用显示转换byte b

小知识点,大问题,对我个人来说,求解。。。。
byte b1 = 1;//整数常量默认不是int的吗,为什么不用显示转换
byte b2 = 2;
byte b3 = 1+2;//编译通过,1+2不是int的吗,为什么不用显示转换
byte b4 = b1+b2;//编译不通过,为什么编译不通过
int b5 = b1+b2;//编译通过,为什么编译通过


是不是被JVM优化了,只是猜测,哪位前辈能给个肯定的回答

[解决办法]
byte b1 = 1;//这是赋值,这个1不是你说的常量,b1才是常量
byte b2 = 2;
byte b3 = 1+2;//同上
byte b4 = b1+b2;//已经超过byte的范围
int b5 = b1+b2;//这个你懂的三。
[解决办法]

byte b4 = (byte)(b1+b2);

因为b1和b2都是变量,编译的时候不知道类型。。。要强转。

还有1当然是常量,b1是变量好不好。。。

探讨

byte b1 = 1;//这是赋值,这个1不是你说的常量,b1才是常量
byte b2 = 2;
byte b3 = 1+2;//同上
byte b4 = b1+b2;//已经超过byte的范围
int b5 = b1+b2;//这个你懂的三。

热点排行