Java中 = 和 += 的区别

Java中 = 和 += 的区别

public static void main(String[] args){
  short i=1;
  i=i+1;
  System.out.printfIn(i);
  }
  
  1. +:在编译器将右边的表达式结果计算出来后,和左边的变量类型比较精度,如果左边的变量精度低于右边的结果的精度,编译器会显式的报错,告诉程序员去强制转型。(所以s1= s1 + 1出错)最后将表达式的结果复制到变量所在的内存区。
public static void main(String[] args){
  short i = 1;   
  i+=1;
  System.out.println(i);
}
  1. +=:编译器自动隐式直接将+=运算符后面的操作数强制装换为前面变量的类型,然后在变量所在的内存区上直接根据右边的操作数修改左边变量内存存储的二进制数值(所以
    s += 1不报错)最后达到和赋值运算符相同的目的。与前者相比,由于后者是位操作,效率也较前者高。

你可能感兴趣的:(java)