我知道在java算术运算期间,诸如byte,short和char值之类的数据类型会自动扩展为int,我理解为什么以下示例无法编译:
byte a = 10 ;
byte b = 20 ; // compile fails
short sum = a + b ;
但是,如果我们修改了前面的示例并定义了变量 a 和 b 作为最终变量,然后编译成功,我就无法理解:
final byte a = 10 ;
final byte b = 20 ; // compile successful
short sum = a + b ;
我在这里不明白的是键 final 如何确保编译器执行求和?