类型转换
在运算中,不同数据类型运算,必须要先转换为相同数据类型,再运算
基本数据类型的优先级
有低到高:
byte<short<char<int<long<float<double
转换类型
1.强制类型转换
由高到低(由高容量到低容量)
注意:
1.boolean不能强制转换
2.不能将对象类型转换为不相干类
3.由高容量到低容量,强制转换
4.转换可能存在内存溢出,或精度问题
2.自动转换
由低到高,自动转换
拓展及注意细节
在操作较大数时,在jdk1.7以后,可用下划线(_)来区分位数,便于观看,且输出不会显示下划线
int i=10_0000_0000;
System.out.println(i);//1000000000
操作较大的数会存在溢出问题:
int i=10_0000_0000;
int j=20;
int result=i*j;
System.out.println(result);//-1474836480
这时要注意类型转换
int i=10_0000_0000;
int j=20;
long result=i*(long)j;//20000000000
System.out.println(result);
如果是long result=i*j,则不能。
是先将i*j计算出来,结果为int,再将结果强制转换为long,这是结果为-1474836480