我刚开始分析一个执行一些插值的应用程序,并且在相互调用和相互log linear
调用时发现了一些奇怪的东西。该行为可以通过以下方式重现:Math.log
Math.exp
public class TestLogExp {
public static void main(String[] args) {
Double thisdouble = 0d;
thisdouble = Math.log(Math.exp(10));
System.out.println(thisdouble);
}
}
现在我们清楚地看到了,Math.log
并且Math.exp
在这个 main 方法中被调用。但是,当我在Math.exp
and中都设置断点时Math.log
(它们只是对 的调用StrictMath
native statics
),执行只会在 中中断Math.exp
,而不是在Math.log
.
现在我认为它可能java
不会在静态方法的调用中调试调用,但是当我调用时Math.exp(Math.log(10))
(反之亦然),观察到相同的行为,只在 exp 中停止,而不是在日志中......
有谁能重现这个?为什么会这样?
编辑:似乎根本没有调试 Math.log 函数。将行替换为thisdouble = Math.log(Math.exp(10));
,thisdouble = Math.log(10);
仍然不会在调试模式下停止,尽管 Math.class 中有一个断点...