由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
由低到高:byte,short,char→int→long→float→double
运算中,不同类型的数据先转化为同一类型,然后再进行运算。
int i =128; byte b=(byte)i;//内存溢出,byte最大是127 //强制类型转换 格式:(类型)变量名 由高→低 //自动类型转换 由低→高 System.out.println(i);//输出128 System.out.println(b);//输出-128
注意点:
System.out.println((int)23.7); //输出23 System.out.println((int)-45.89f); //输出-45 char c = 'a'; int d = c+1; System.out.println(d);//输出98 System。out.println((char)d);//输出b
操作比较大的数的时候注意溢出的问题。
JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;//下划线并不会被输出 int years = 20; int total =money*years; System.out.println(total);//输出-1474836480,计算的时候溢出了 long total2 =money*years; System.out.println(total2);//输出-1474836480,默认是int,转换之前已经存在问题了? long total3 =money*((long)years;//先把一个数转换为long System.out.println(total3);//输出20000000000