分别是自动转换和强制转换
1自动转换:将取值范围小的类型自动提升为取值范围大的类型(取值范围从小到大)
byte>short>int>long>float>double
char>int
当储存类型范围小的数据与储存范围大的数据类型一起混合运行时,会按照最大的数据类型计算
当byte short char数据类型进行算数运算时,默认int类型处理
boolean类型不参与因为布尔类型只有true和false
2、强制转换:当把储存范围大的值(常量值、变量值、表达式计算的结果值)赋值给储存变量范围小的时候,我们就需要用到强制转换了(提示:有风险,可能会丢失精度、或溢出
在下面这个案例中,我们想把3.14赋值给int类型的变量是,系统就会给我们编译不通过,因为3.14带有小数,而int只能接收整数。这个时候我们就需要把他转换成int;
正确的代码
int i=(int) 3.14;
当值想要提升数据类型时,也可以使用强制转换