Java 数据类型的自动转换和强制转换
自动转换
自动转换适用于低位数类型向高位数类型的转换
规则:
-
对于算术运算按照下图所示规则转换
graph LR A[byte] --> B[short] B --> C[int] C --> D[long] D --> E[float] E --> F[double] G[char] --> C
对于赋值运算:当两种类型兼容时(如整型和浮点型相互兼容),低位类型会自动向高位类型转换
布尔类型不能和其他基本数据类型相互转换
// 示例:
int x = 100;
long y = x; // 在赋值时int型自动转换为long型
double z = x + y; // 在算术运算时int型先转换为long型再运算,运算结果转换为double型再赋值
强制转换
强制转换适用于高位类型向低位类型的转换。
-
语法:用
()
标注需要强制转换成的类型// 示例: int x; x = (int)34.56 + (int)11.2; // x = 45,丢失精度 byte y = (byte)x;