MST

星途 面试题库

面试题:Java基本数据类型转换规则之混合运算问题

在Java中,有如下代码:byte b = 5; int i = 10; float f = 20.5f; double d = 30.5; 求表达式b + i + f * d的结果类型是什么,并说明计算过程中涉及到哪些基本数据类型转换规则。
39.2万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 结果类型double
  2. 计算过程及数据类型转换规则
    • 首先计算f * dfloat类型的f(值为20.5f)与double类型的d(值为30.5)相乘。根据Java的自动类型转换规则,当参与运算的两个操作数类型不同时,会将小范围类型自动转换为大范围类型。float类型的范围小于double类型,所以f会自动转换为double类型,然后进行乘法运算,结果为double类型(20.5 * 30.5 = 625.25,这里的结果是double类型)。
    • 接着计算b + ibyte类型的b(值为5)与int类型的i(值为10)相加。byte类型会自动转换为int类型,因为int类型范围大于byte类型,然后进行加法运算,结果为int类型(5 + 10 = 15)。
    • 最后计算(b + i) + (f * d),即int类型(值为15)与double类型(值为625.25)相加。由于int类型范围小于double类型,int类型会自动转换为double类型,最终结果为double类型(15 + 625.25 = 640.25)。

所以表达式b + i + f * d的结果类型是double