Java中 复合赋值运算符 的 类型转换(属于强制类型转换)
2021-05-31 13:05
标签:ssi 代码 强制 class 结果 void 范围 oid 符号 Java中 复合赋值运算符 的 类型转换(属于强制类型转换) 标签:ssi 代码 强制 class 结果 void 范围 oid 符号 原文地址:https://www.cnblogs.com/MINGYOUR/p/14743126.html当程序中有复合赋值运算符时,不同类型的数据会进行强制转换,比如下面例子: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; //这句代码不报错是因为复合运算符相当于有一个强转符号, 把结果转换成符合的数据类型在进行赋值
}
}
下一篇:Java多线程
文章标题:Java中 复合赋值运算符 的 类型转换(属于强制类型转换)
文章链接:http://soscw.com/index.php/essay/89756.html