我知道,如果我们在byte值上执行算术运算,则会隐式地将其提升为int,并且结果将是int,因此我们需要显式地将其转换为byte才能将结果存储在byte变量中。
但我想问:
- 将byte转换为int是在声明时发生还是在使用它进行算术运算时发生?因为我正在使用的Java反编译器将其从byte转换为int,所以这是否是反编译器的问题还是真的是这样。
- 如果确实发生在声明时,那么为什么存储超出byte范围的值会显示错误?
例如- 代码如下:
public class Hello
{
public static void main(String[] args)
{
byte a=90;
}
}