Java学习 (六)基础篇 类型转换
类型转换
- 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
字节大小(容量)->
低--------------------------------------------->高
byte,short,char -> int -> long -> float -> double
- 小数的优先级一定大于整数
- 运算中,不同类型的数据先转化为同一类型,然后再进行运算
强制类型转换
- 数据类型从高到低转换则为强制转换 (类型)变量名
- 数据类型从低到高转换则为自然转换,不需要添加任何字符
//强制转换
int i = 128; //128
byte b = (byte) i; //-128
double c = i; //128.0
//精度问题
System.out.println((int)23.7); //23.7
System.out.println((int) -45.8f); //-48.8
//类型转换
char d = 'a';
int e = d+1;
System.out.println(e); //98
System.out.println((char) e); //b
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换为低容量时,需要进行强制转换
- 转换过程中可能出现内存溢出,或者精度问题
int mon = 1000000000;
int mon1 = 10_0000_0000;
int year = 20;
int total = mon*year;
System.out.println(mon); //1000000000
System.out.println(mon1); //1000000000
System.out.println(total); //超出类型容量,为-1474836480
long total1 = mon*(long)year;//将数据类型转换成更高数据类型,并在后面单位添加该类型
System.out.println(total1); //输出正常,20000000000
-
如果数值超出类型数据容量,则会内存溢出,并随机输出值
-
操作比较大的数值时,注意溢出问题
-
JDK新特性,数值比较大时,可以用下划线分割,每4位分割