如果我有一个字节变量: byte b = 0;
为什么以下工作:
b++;
b += 1; // compiles
Run Code Online (Sandbox Code Playgroud)
......但这不是吗?
b = b + 1; // compile error
Run Code Online (Sandbox Code Playgroud)
编译器首先理解为byte第二个和第二个int吗?
[编辑]
我知道铸造,但我想引起你的注意 b++, b += 1 and b = b + 1
我认为它们是平等的,为什么编译器会有所不同?有什么区别
b += 1 and b = b + 1 ?
Run Code Online (Sandbox Code Playgroud) 当我们尝试使用递增运算符和加法运算符递增字节变量时会发生什么.
public class A {
public static void main(final String args[]) {
byte b = 1;
b++;
b = b + 1;
}
}
Run Code Online (Sandbox Code Playgroud)
请告诉我哪里可以找到释放这些小东西的来源?请帮帮我.