Day06 类型转换
类型转换
- 由于Java是强类型语言,所以要进行不同类型数据运算时,需要用到类型转换
byte,short,char→int→long→float→double(浮点数>整数)
低-------------------------------------------------------→高
- 运算中,不同类型的数据要先转化为同一类型,然后计算
- 强制转换:高→低,(类型)变量名
例:int i = 128;byte b = (byte)i;print b = -128 内存溢出(避免此类转换)
- 自动转换:低→高
例:int i = 128;long b = i;print b = 128
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转换为不相关的类型
-
高到低转换时需要强制转换
-
转换时会出现内存溢出或者精度问题
例:print((int)23.77)= 23;print((int -45.558f))= -45
-
操作比较大的数的时候,注意溢出问题
例:
- int a = 10_0000_0000;int b = 20;int c = ab;print c =-1474836480(溢出)
- int a = 10_0000_0000;int b = 20;long c = ab;print c =-1474836480(溢出,int*int默认结果为int)
- int a = 10_0000_0000;long b = 20L;long c = ab;print c =20_0000_0000(低*高默认结果为高)
- int a = 10_0000_0000;int b = 20;long c = a(long)b;print c =20_0000_0000(低*高默认结果为高)
浙公网安备 33010602011771号