数据类型转换
1、自动转换
向上转换:整型,字符型,浮点型的数据在混合运算中相互转换。
转换原则:容量小的类型可自动转换为容量大的数据类型。
int和byte类型进行加减运算,结果是int类型。
自动转换:将取值范围小的类型自动提升为取值范围大的类型。
同样的道理,当一个int和double进行运算时,会自动转换为double类型进行运算
byte类型占一个字节,和int类型进行运算时会自动补充三个字节。
Eg:
int i = 123;
long l = i;//自动转换,不需强转
float f = 3.14F;
double d = f;
转换规则:取决于数据类型的取值范围 byte,short,char → int → long → float → double
byte,short,char 之间不会相互转换,他们在计算时首先会转换为 int 类型。
boolean 类型是不可以转换为其他基本数据类型
2、强制转换
int i=1.5; //编译错误
double内存是8字节,int内存是4个字节。1.5是double类型,取值范围大于int。可以理解为8升水的的水壶装满不能倒进4升的水壶。
强制转换:将取值范围大的类型自动提升为取值范围小的类型。
数据类型 变量名=(强制转换的类型)被转数据值。
Eg:
long l = 123L;
int i = (int) l;//必须强转
double d = 3.14;
float f = (float) d;
3、总结 : 类型转化
小转大 , 自动 ! 自动类型转换 ( 也叫隐式类型转换 )
大转小 , 强转 ! 强制类型转换 ( 也叫显式类型转换 )