数据类型的转换
隐式类型转换:
什么是隐式类型转换?
就是指小的数据类型会自动提升为大的数据类型
举例子:
byte b = 1;
short s = 2;
int i = 3;
long l = 4;
float f = 3.14f;
double d = 3.14;
double dd = b + s + i + l + f + d;
当多个数据类型参与运算的时候,小的数据类型会自动提升为大的数据类型
注意:boolean类型不能和其他数据类型相互转换
常见的考试题?
情况一:
byte b1 = 1;
byte b2 = 2;
byte b3 = b1 + b2;
System.out.println(b3);//编译报错
short s1 = 1;
short s2 = 2;
short s3 = s1 + s2;
System.out.println(s3);//编译报错
情况二:
byte b1 = 1;
byte b2 = b1 + 2;
System.out.println(b2);//编译报错
short s1 = 1;
short s2 = s1 + 2;
System.out.println(s2);//编译报错
结论:针对byte类型和short类型的时候,只要右边有一个是变量,就会编译报错
情况三:
byte b = 126 + 1;
System.out.println(b);//正确,127
情况四:
byte b = 127 + 1;
System.out.println(b);//编译报错,因为byte范围最大值是127
强制类型转换:
什么是强制类型转换?
是指大的数据类型被强制转换成小的数据类型
强制类型转换的格式?
小的数据类型 小的数据类型的变量名 = (小的数据类型)大的数据类型的变量名;
举例子:
int i = 130;
byte b = (byte)i;
注意:我们能不使用强制转换,尽量不要使用,因为转不好会出现问题
int i = 130;
byte b = (byte)i;
System.out.println(b);//-126