補間を行うアプリケーションのプロファイリングを開始したばかりですが、呼び出しや相互の内部でlog linear何か奇妙なことに気づきました。動作は次のように再現できます。Math.logMath.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と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にブレークポイントがありますが、デバッグモードでは停止しません。