a+=b和a=a+b区别

Posted codecheng99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了a+=b和a=a+b区别相关的知识,希望对你有一定的参考价值。

首先建议你看一下这篇char、byte、short类型的加法和类型转换问题https://www.cnblogs.com/codecheng99/p/12431997.html

相信你会明白很多,然后再来了解a+=b和a=a+b的区别
看下面两段代码
---

public class abTest {
public static void main(String[] args) {
    byte a = 127;
    a += 1;
    System.out.println(a);  //运行结果为-128,这证明了a+=1自动将byte类型的a转换成int类型
  }
}



public class abTest {
public static void main(String[] args) { 
    byte a = 127;
    byte b = 127;
    a = a + b;        //编译出错
    a = a + 5;        //编译出错
    a = (byte)(a+b);  //正常
    a += b;           //正常
  }
}

总结:

  • 1、对于同样类型的a,b来说

两个式子执行的结果确实没有什么区别。但是从编译的角度看吧,a+=b;执行的时候效率高。

  • 2、对于不同类型的a,b来说

??? 2.1??? 不同类型的两个变量在进行运算的时候,我们经常说到的是类型的转换问题。这里,记住两点:一、运算过程中,低精度的类型向高精度类型转换。二、如果将高精度的数值赋值给低精度类型变量,则必须要进行显性的强制转换。

? ?? 2.2? ? 对于a+=b;这个式子,要明确的一点是,+=运算中,结合了强制类型转换的功能,因此,不会出现编译错误;而对于a=a+b;这个式子,因为是简单的运算,没有类型转换,在编译过程中会报错

————————————————

参考链接:·https://blog.csdn.net/xingyunpi/article/details/6522986·

以上是关于a+=b和a=a+b区别的主要内容,如果未能解决你的问题,请参考以下文章

(a != b) 和 (a != (a = b) 有啥区别?

a = a + b 和 a += b 有啥区别? [复制]

a+=b和a=a+b区别

[Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)][C. Playing Piano](代码片段

Ruby中object.method(a,b)和method(a,b)有啥区别

使用嵌套片段和动画对象