我正在重新提出一个我认为关注度太低的问题:
为什么这个简单的代码(只是调用Math.log()
):
Double thisdouble = Math.log(10);
在 jdk1.7.0_11 的 Math.class 的第 275 行有一个断点:
274 public static double log(double a) {
275 return StrictMath.log(a); // default impl. delegates to StrictMath
276 }
在调试模式下不停止执行?有人可以在他/她自己的机器上试试这个吗(我正在使用 Eclipse)?
调用Math.exp()
和调试Math.exp
(第 254 行)函数确实有效......
编辑:上面的答案是Math.log
由 Hotspot VM 的内在调用取代,因此永远不会到达 Math 类中的代码。现在剩下的问题是为什么Math.exp
不被内在取代...... FWIW我在Core i5 M520(Arrandale)上,但我严重怀疑该处理器是否支持日志而不是exp......