1、java是强类型语言,进行运算的时候,有时需要用到类型转换
从低到高: byte--short--char--int--long--float--double
2、运算中,需要将不同数据类型转换成同一类型然后运算
强制转换格式:(类型)变量名 --强制转换一般用于从高转到低
int i= 128; byte b = (byte)i; //强制转换,结果是-128 因为超出byte类型的范围导致内存溢出
自动转换:可以直接转换---适用于从低到高
int a = 128; double c=a;
备注:
不能对不布尔值进行转换
转换的时候可能出现内存溢出,或者精度问题(例如把float转换成int时输出的数会去掉小数点 System.out.println((int)23.7f); //输出结果23)
关于内存溢出:
int money = 1000000000; int year = 200; int total = money*year; System.out.println(total); //输出结果:-1863462912 内存溢出
解决内存溢出:在计算过程中进行类型转换而不是计算出结果之后再进行类型转换
long total = money*((long)year); System.out.println(total);
补充:
jdk7新特性:数字之间可以用下划线分割,且不影响数字结果
int money = 1000_0000; System.out.println(money); //输出结果:10000000