Math.max(a,b)还是(a>b)?a:b在Java中更快?

2022-09-01 13:40:02

哪一个在Java中更快,为什么?

  1. Math.max(a,b)
  2. (a>b)?a:b

(这是在一次采访中问到的。


答案 1

Math.max(a, b)是一个静态函数(意味着没有虚拟调用开销),并且可能由 JVM 内联到与 相同的指令中。(a > b) ? a : b


答案 2

以下是 Java 中的 代码:Math.max()

public static int max(int a, int b) {
    return (a >= b) ? a : b;
}

因此,代码可能(几乎)完全相同的速度。

(说实话,如果你担心速度在如此低的水平上提高,那么你的代码中可能会有更大的问题。


推荐