强制转换与自动转换
由于Java是强类型语言,要进行有些运算的时候,需要用到类型转换。
容量低到高依次为
byte, short , char -> int -> long -> float ->double
强制转换:容量高到低,用法:(类型)变量名
自动转换:容量低到高
运算中,不同类型的数据先转换为同一类型,然后进行运算。
注意点:
1、不能把布尔值进行转换
2、不能把对象类型转换为不相干的类型
3、高容量转换到低容量,需要用强制转换
4、转换的时候可能存在内存溢出,或者精度问题
5、进行运算时,有long为long,没long为int。可通过强制转换的报错信息查看当前属于哪种类型。
//JDK7新特性,数字之间可用_,不会影响数值
int money = 10_0000_0000;
int year = 20;
int total1 = money*year;
long total2 = money*year;
long total3 = money*(long)year;
System.out.println(total1); //-1474836480
System.out.println(total2); //-1474836480
System.out.println(total3); //20000000000