【发布时间】:2021-01-08 20:52:13
【问题描述】:
我正在使用 Java/Eclipse,我想知道如何检查这些方法的工作方式。
比如,当我写作时
Math.sqrt(16)
它返回值 4,但是如何呢?这种方法实际上是如何做到的?其背后的逻辑是什么?有没有办法查看它们?
【问题讨论】:
我正在使用 Java/Eclipse,我想知道如何检查这些方法的工作方式。
比如,当我写作时
Math.sqrt(16)
它返回值 4,但是如何呢?这种方法实际上是如何做到的?其背后的逻辑是什么?有没有办法查看它们?
【问题讨论】:
如果您使用任何类型的 IDE,例如 InteliJ IDEA 或 Geany,您只需在按住 control(CTRL) 键的同时单击方法名称即可访问导入的或内置的方法。然后您可以看到该代码中的内容。如果该代码中有更多方法,也对它们执行相同的操作。然后您将能够了解该方法的工作原理。
在您的示例中在面向对象编程中考虑它时,这里我们没有创建一个对象来使用该方法。这意味着 Math 类有一个名为 sqrt 的静态方法,它可以接受一个数字作为参数,并且它的返回类型也被声明为数字。
【讨论】:
native 方法实现的,因此即使是 JDK 也无助于该特定方法。它还带有@HotSpotIntrinsicCandidate 注释,因此 JIT 可以将其直接转换为机器指令。
标准库是在 JDK 中实现的。 OpenJDK 遵循 GNU 通用公共许可证,它是 JDK 的实现,大多数其他实现都基于它构建。你可以在 GitHub here 上找到它的源代码。导航有点难,不过sqrt函数的实现最终还是可以在here找到的。它被广泛记录。有关sqrt 实现和其他Java 数学实现的更多信息可以在this question 的答案中找到。
【讨论】: