1、java是强类型语言,进行运算的时候,有时需要用到类型转换
从低到高: byte--short--char--int--long--float--double
boolean(布尔类型)、short(短整型)、int(整型)、long(长整型)、byte(字节型)、char(字符型)、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