数据类型转换
1.为啥要进行类型转化
(1)Java是强类型语言,所以在进行运算时需要先进行类型转换
(2)运算时,不同类型的数据要先转换位同一类型之后,再进行运算
2.转换规则
(1)转换是从低容量–》高容量进行转换的
byte,short,char–>int–>long–>float–>double
小数的优先级大于整数
3.转换类型
(1)强制转换 高-》低
需要加上强制类型转换符:(类型)变量
public class Demo3_type_change {
public static void main(String[] args) {
//强制类型转换,需要注意内存溢出
int i=128;
byte b=(byte)i;//将int类型变量i强制转为byte类型
System.out.println(b);//-128 内存溢出了
}
}
(2)自动转换 低-》高
public class Demo3_type_change {
public static void main(String[] args) {
//自动转换
int i1=133;
double d=i1;
System.out.println(d);//133.0
}
}
4.注意事项
(1)不能对布尔类型进行转换
(2)不能把对象类型转为不相干的类型,比如:将人转为猪
(3)当高容量转低容量时,要进行强制转换
(4)转换时可能除内存溢出或精度问题
//精度问题
int i2=(int)23.7;
int i3=(int)-45.6;
char c='a';
int num=c+1;
System.out.println(i2);//23
System.out.println(i3);//-45
(5)操作比较大的数,注意溢出问题
//溢出问题
int money=10_0000_0000;
int year=20;
int total=money*year;
System.out.println(total);//溢出 结果:-1474836480
long total2=money*year;//改成long接受
System.out.println(total2);//-1474836480 仍然溢出,计算时用的还是int,最后转换时已经溢出了
long total3=(long)money*year;//计算时先进行转换
System.out.println(total3);//结果正确