类型转换:
- 自动类型转换(隐式类型转换)
整型、字符型数据可以混合运算。
运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级。
自动转换有以下规律:
小的类型自动转化为大的类型
整数类型可以自动转化为浮点类型,可能会产生舍入误差
字符可以自动提升为整数
例:
float float0 = intCharC;
Long long0 = Long.MAX_VALUE;
这样的转换会导致精度丢失
Float float1 = long0;
- 强制类型转换(显式类型转换)
格式: (type)value type 是要强制类型转换后的数据类型
注意: 强制类型转换可能导致溢出或损失精度
在把容量大的类型转换为容量小的类型时必须使用强制类型转换
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
例:
强制类型转换
Int int1 = 1;
Byte byte1 = (byte) int1;
float f1=1.0f;
Long long1=(long) f1;
强制转换超出了属性范围 会导致内存溢出
Int int2 = 128+2;
Byte byte2 = (byte) int2;