为什么在整数的情况下无需显式转换?

raj*_*.11 3 java integer casting

byte a=10;
byte b=20;

b=a+b;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我需要a+b像这样显式转换为字节:

b=(byte)(a+b);
Run Code Online (Sandbox Code Playgroud)

与short相同:

short x=23;
short y=24;
Run Code Online (Sandbox Code Playgroud)

否则会产生错误。

但是在整数的情况下,不需要显式转换:

int p=7788;
int q=7668;

p=p+q;
Run Code Online (Sandbox Code Playgroud)

这样就可以了。

这是为什么?

即使在很长的情况下,我们也不需要显式转换。

Mur*_*nik 7

如果您查看JLS 4.2.2整数运算,它指出两个整数操作数之间的数值运算结果是an int或a long。由于没有从intto byte或a进行隐式转换short,因此需要显式转换。