use*_*808 1 java variables byte addition
为什么我没有得到输出,因为byte值是-128到127,结果是30?
class test15 {
public static void main(String ...s) {
byte a = 10;
byte b = 20;
byte c = a+b;
System.out.println(c);
}
}
Run Code Online (Sandbox Code Playgroud)
CompileTime vs RunTime
a,b是字节,字节没有加法运算符.在运行时,因为a,b不是最终的,所以发生整数加法,结果是a int.而你正试图将它分配给一个字节.这导致编译错误.
byte c = (byte)a+b;
Run Code Online (Sandbox Code Playgroud)
并作为旁注.尝试将您的代码更改为
final byte a = 10;
final byte b = 20;
byte c = a + b;
Run Code Online (Sandbox Code Playgroud)
由于转换变窄,编译很好,如果所有操作数都是表达式中的常量值,则可能.
| 归档时间: |
|
| 查看次数: |
2017 次 |
| 最近记录: |