【问题标题】:How to view native implementations of Java classes?如何查看 Java 类的本机实现?
【发布时间】:2012-02-06 16:31:18
【问题描述】:

有几个网站提供 Java 源代码。 不幸的是,这些并不是指 Java 原生二进制文件。 简而言之:native 函数的源码没有展示。

一个例子是StrictMath.floor。 唯一提供的是原始 Java 声明

 public static native double floor(double a);

我感兴趣的是实际的 c/c++ 代码。他们是如何实际实施的?

【问题讨论】:

标签: java c++ open-source native


【解决方案1】:

OpenJDK 项目包含完整源代码。 jdk 6 的源代码大致相当于 Sun/Oracle jdk 中的源代码。 jdk 7 的来源应该几乎完全相同。

【讨论】:

    【解决方案2】:

    如果您使用 OpenJDK 的调试版本,您可以看到生成的本机代码。

    StringMath.floor() 变成了一条机器指令。即一些“本机”方法实际上是由 JVM 内联的。不知道这对你有什么帮助。 ;)

    见fistphttp://stereopsis.com/FPU.html的笔记

    【讨论】:

      猜你喜欢
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      相关资源
      最近更新 更多