byte b1 = 1;//整数常量默认不是int的吗,为什么不用显示转换
byte b2 = 2;
byte b3 = 1+2;//编译通过,1+2不是int的吗,为什么不用显示转换
byte b4 = b1+b2;//编译不通过,为什么编译不通过
int b5 = b1+b2;//编译通过,为什么编译通过是不是被JVM优化了,只是猜测,哪位前辈能给个肯定的回答
byte b2 = 2;
byte b3 = 1+2;//编译通过,1+2不是int的吗,为什么不用显示转换
byte b4 = b1+b2;//编译不通过,为什么编译不通过
int b5 = b1+b2;//编译通过,为什么编译通过是不是被JVM优化了,只是猜测,哪位前辈能给个肯定的回答
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是变量好不好
1.整数字面量(直接量) 默认是int类型, 如果不超出范围, 可以给小类型直接赋值.
2.使用整数类型(byte, short, int) 要注意取值范围, 超范围运算java 底层byte,short 按照32位计算