【发布时间】:2011-01-07 09:33:18
【问题描述】:
Java 中哪个更快,为什么?
Math.max(a,b)(a>b)?a:b
(这是在采访中被问到的。)
【问题讨论】:
-
不知道面试官问这样的问题希望得到什么。
-
我真的很讨厌人们在面试时问语言律师问题。有没有人真的认为你成为一名高效程序员的能力与你记忆语言规范细节的能力密切相关?
-
对这个问题的正确回答是(来自编译器背景)它取决于优化器选择对函数调用做什么。在不知道 1. 执行上下文和 2. 优化器首选内联方法的调用参数的情况下,NO WAY 可以确定上述调用的速度优化。可以做出有根据的猜测(如下所示),但它们只是猜测。我同意@dsimcha 这些问题并不能真正说明你的能力。
-
我可以给你写一个jvm,其中一个比另一个快得多,反之亦然;)
-
@Seth:我希望面试官试图确定面试官是否沉迷于毫无意义的微优化。