Java中 复合赋值运算符 的 类型转换(属于强制类型转换)

当程序中有复合赋值运算符时,不同类型的数据会进行强制转换,比如下面例子:byte b += 2,是把int类型数据强制转换成byte,然后在进行赋值操作的!

public class AssignOperator {
    public static void main(String[] args) {
        //  有个容易疑惑的地方 :复合赋值运算符会进行类型转换
	   byte b = 3; //这句代码正确的前提是 后面赋值的数字在byte的范围内,3 在范围内,所以不报错  
        // b = b + 2;// 这就话会报错,因为b(byte)+ 2(int) 运算之后的结果为int 无法赋值给b(byte)

        b = (byte)(b + 2); //这样就不会报错,前面加上一个强转符号,所以下面的符合运算符相当于有一个隐形的强转符号
        b += 2; //这句代码不报错是因为复合运算符相当于有一个强转符号, 把结果转换成符合的数据类型在进行赋值
    }
}
原文地址:https://www.cnblogs.com/MINGYOUR/p/14743126.html