哪一个在Java中更快,为什么?
Math.max(a,b)
(a>b)?a:b
(这是在一次采访中问到的。
Math.max(a, b)是一个静态函数(意味着没有虚拟调用开销),并且可能由 JVM 内联到与 相同的指令中。(a > b) ? a : b
Math.max(a, b)
(a > b) ? a : b
以下是 Java 中的 openjdk 代码:Math.max()
Math.max()
public static int max(int a, int b) { return (a >= b) ? a : b; }
因此,代码可能(几乎)完全相同的速度。
(说实话,如果你担心速度在如此低的水平上提高,那么你的代码中可能会有更大的问题。