Math和StrictMath

来源:互联网 发布:淘宝月销售怎么查看 编辑:程序博客网 时间:2024/06/01 08:40

Math位于java.lang包下,当我们试图调用Math.sin方法时候,在Math类中显示的是StrictMath中的 sin方法

public static double sin(double a) {return StrictMath.sin(a); // default impl. delegates to StrictMath    }

StrictMath中仅仅定义了方法,并且申明为static native

/**     * Returns the trigonometric sine of an angle. Special cases:     * <ul><li>If the argument is NaN or an infinity, then the      * result is NaN.     * <li>If the argument is zero, then the result is a zero with the     * same sign as the argument.</ul>     *     * @param   a   an angle, in radians.     * @return  the sine of the argument.     */     public static native double sin(double a);  

在Math类中,为了达到最快的性能,所有的方法都使用计算机浮点单元中的历程。如果得到一个完全可预测的结果比运行速度更重要的话,就应该使用StrictMath类。它使用“自由发布的Math库”实现算法,以去报在所有平台上得到相同的结果。有关这些算法的源代码请参阅http://www.netlib.org/fdlibm/index.html

参考:

        Math类还提供指数函数以及它的反函数--自然对数  Math.exp    Math.log

        Math类还提供了两个用于表示π和e常量的近似值 Math.PI    Math.E

提示:从JDK5.0开始,不必在数学方法和常量名前添加前缀Math,而只用在源文件的顶部加上下列内容就可以     Import static java.lang.Math.*;

        System.out.println("The square root of \u03C0 is "+sqrt(PI));


0 0
原创粉丝点击