一直认为 a+=2 与a = a+ 2是一样的
但是第一种编译不通过,而第二种正常。
与byte一样 java默认整型是int,short a = 2 ,将2中砍掉两个字节 转换成short 这是由计算机检测认为可以的。
而a = a + 2同样的a是变量,对于a的值并不确定,为了安全 系统不准通过。
至于a+=2是一步执行,系统底层帮助我们检测并转化为short
好比a = short(a + 2)
一直认为 a+=2 与a = a+ 2是一样的
但是第一种编译不通过,而第二种正常。
与byte一样 java默认整型是int,short a = 2 ,将2中砍掉两个字节 转换成short 这是由计算机检测认为可以的。
而a = a + 2同样的a是变量,对于a的值并不确定,为了安全 系统不准通过。
至于a+=2是一步执行,系统底层帮助我们检测并转化为short
好比a = short(a + 2)