a+=b和a=a+b是一样的吗?
Posted 唐僧洗澡不秃头
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了a+=b和a=a+b是一样的吗?相关的知识,希望对你有一定的参考价值。
a+=b和a=a+b是一样的吗?
我们来先看一张图
a+=b 是先进行 a+b 的加法 ,然后将结果赋值给a ,举一个例子
public static void main(String[] args)
int a = 100;
a = a + 1;
System.out.println(a);
int c = 100;
c += 1;
System.out.println(c);
代码运行结果如下
看起来似乎是没什么区别
但是当我用byte类型的数据进行a = a + 1时却发现直接报错了
报不能将int类型的数据转换为byte , 那为什么 a+=1 , 不会报这个类型转换的错误呐, 我发现原来扩展的赋值运算符底层隐含了强制类型转换
a += 1; 其实就相当于 a = (byte)( a + 1);
而 a = a +1 ;在运算 a+1 过程中会将 a+1 转化为 int 类型,而后面又将 a+1 赋值给a ,此时就会发生类型转换错误了。
以上是关于a+=b和a=a+b是一样的吗?的主要内容,如果未能解决你的问题,请参考以下文章