以一段代码为例
public classDemo
{
public static void main(String[] args)
{
short a=4;
a+=5;
System.out.println(a);
}
}
程序运行结果是9,+=在Java中是一个运算符,两个操作数使用运算符执行操作时候,如果类型不一致,则向高精度类型转换,当然没问题。
再看一下下面这个例子:
public classDemo
{
public static void main(String[] args)
{
short a=4;
a=a+5;
System.out.println(a);
}
}
这段代码编译会报错,因为a+5,a和5的类型不一致,会使short转到int类型,然后把int赋值给精度比自己低的变量会报错。
总之,当类型不一致时,a+=b和a=a+b有区别,当类型一致时,他们没什么区别。