首页 > 代码库 > 2.4.5-Java语言基础(类型提升&强制转换)

2.4.5-Java语言基础(类型提升&强制转换)

自动类型转换(也叫隐式类型转换)
强制类型转换(也叫显式类型转换)
类型转换的原理
什么时候要用强制类型转换?

表达式的 数据类型自动提升
?  所有的byte型、short型和char的值将被提升到int型。
?  如果一个操作数是long型,计算结果就是long型;
?  如果一个操作数是float型,计算结果就是float型;
?  如果一个操作数是double型,计算结果就是double型。
分析
?  System.out.println(‘a’) 与System.out.println(’a’+1) 的区别 。


自动类型提升
byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算。

强制类型转换
byte b = 3;
b = b + 4;//报错
b = (byte)b+4;//强制 类型转换,强制将b+4的结果转换为byte类型,再赋值给b。

思考 :
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?