变量与运算符------基本数据类型变量间的强制类型转换规则
规则:将取值范围大(或容量大)的类型强制转换为取值范围小(或容量小)的类型
注意:自动类型提升时是Java自动执行的,而强制类型转换是自动类型提升的逆运算,需要我们自己手动执行
/*
此VariableTest4.java用来测试强制类型转换
*/
/*
规则:
1.如果需要将容量大的变量的类型转换为容量小的变量的类型,需要使用强制类型转换
2.强制类型转换需要使用强转符:(). 在()内指明要转换为的数据类型。
3.强制类型转换过程中,可能导致精度损失。
*/
class VariableTest4{
public static void main(String[] args){
double d1 = 12; //自动类型提升
//int i1 = d1; 编译失败
//强制转换
int i2 = (int)d1;
System.out.println(i2); //输出12
long l1 = 123;
short s1 = (short)l1;
System.out.println(s1); //输出123
//练习
int i3 = 12;
float f1 = i3; //自动类型提升
System.out.println(f1); //输出12.0
float f2 = (float)i3; //编译可以通过,只不过可以省略()而已
//精度损失的例子1:
double d2 = 12.9;
int i4 = (int)d2;
System.out.println(i4); //编译输出12
//精度损失的例子2:
int i5 = 128;
byte b1 = (byte)i5;
System.out.println(b1); //编译输出-128 高位截断,最高位由0变为了1,所以为-128 1000 0000
}
}