Java自动类型转换遵循“安全扩宽”原则,仅在不丢失数据时将小范围、低精度类型转为大范围、高精度类型,需满足类型兼容且目标类型范围严格大于源类型,并按byte→short→int→long→float→double及char→int→long→float→double路径进行。
Java的自动类型转换原理,核心是“安全扩宽”——只在不会丢失数据的前提下,把小范围、低精度的类型自动转成大范围、高精度的类型。
必须同时满足两个条件:
Java规定了从小到大的隐式转换路径,按容量(位数)和表达能力递增排列:
这个顺序不是随意定的,而是由各类型实际占用字节数和可表示数值范围决定的。比如 int 占 4 字节,double 占 8 字节,所以 int 可无损转为 double。
不只是赋值,算术表达式里同样触发自动转换:
int + double → 结果是 double
int + 3.14 实际是 int + double → 结果为 double本质是为了保障编译期安全性和运行时数据完整性:

int a = 5; double b = a * 2.5; 不用手动写 (double)a
基本上就这些。自动类型转换不是“智能猜测”,而是有严格规则支撑的编译期行为,理解它的边界比记住例子更重要。