byte b=1;
b=b++; // 或者是b=++b;
b+=1; //正确的写法
b=b+1; //错误的写法
其中有没有过程发生了隐式转换?
还有有注释的两句是不是说明+=适用于int类型
而不适用于byte类型?
------解决思路----------------------
是有隐式转换
b=b+1; //错误的写法 因为你b是byte 而1 默认是int类型 所以会出错
b=(byte)(b+1);
------解决思路----------------------
+=等符号含有隐式转换,而java中四则运算符号的最小操作数类型为int,也就是说所有参与运算的操作数只要低于int在计算后都会变为int。