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是一样的吗?的主要内容,如果未能解决你的问题,请参考以下文章

Spark 贝叶斯分类算法

位移是可以直接相加减的吗?

委派模式精讲

我可以使用 Eigen 求解形式为 xA=b 的线性方程组,其中 A 是稀疏的吗?

静态成员是继承的吗?

所有 PHP 相等比较都是对称的吗?