类型转换
由于Java是强类型语言,所以要进行有些有些运算的时候,需要用到类型转换。
类型转换的优先级顺序
-
byte,short,char
-
int
-
long
-
float
-
double
注意以上排序是按照有低到高排序
运算中,不同类型的数据想要比较,必须先转化为同一类型的,然后才能进行比较。
注意
-
不能对布尔类型转换
-
不能把对象类型转换为不相干的类型
-
把高容量转换为低容量的时候,强制转换,低容量转换成高容量时不需要强制类型转换。(如下图 )
-
运行结果
-
转换的时候可能出现内存溢出,或者精度的问题
代码如下
public class Demo05 { public static void main(String[] args) { int i =128; byte b = (byte)i; System.out.println(i); System.out.println(b);//内存溢出 //强制类型转换 由高到低需要转换 //自动类型转换 由低到高自动转换 System.out.println((int)23.4); System.out.println((int)-45.89f);//精度丢失 char c = 'a'; int d = c + 1; System.out.println(d); System.out.println((char)d); //操作数比较大的时候,注意溢出问题 int money = 1000000000; int years = 20; int total = money*years; System.out.println(total);//溢出 long total2 = money*years; System.out.println(total2); long total3 =money*((long)years);//一定要先进行强制类型转换,再进行计算 System.out.println(total3); } }