当前位置: 代码迷 >> J2EE >> 小知识点,大有关问题,对小弟我个人来说,求解。
  详细解决方案

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

热度:28   发布时间:2016-04-22 01:55:42.0
小知识点,大问题,对我个人来说,求解。。。。
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;//这个你懂的三。
  相关解决方案