java赋值运算思考题
+=
-=
*=
/=
short s = 1 ; //可以吗?可以。
s+=1;//可以吗? 可以
System.out.println(s);//2
System.out.println("------------");
//s=s+1; //可以吗? 不可以。必须强转
s=(short)(s+1); //必须这样做
System.out.println(s); //3
s+=1与s=s+1在计算上无区别,
但是本质上 +=是相当于一个整体,是在原内存地址上进行操作,
s=s+1是相当于在新的内存地址上计算,并默认转换为int类型,然后再赋给s代表的内存地址;
如果此时s代表的内存地址小于int类型,会发生报错。