当前位置: 首页 > 面试题库 >

在哪里可以找到java.lang本机方法的源代码?

商运锋
2023-03-14
问题内容

我有点熟悉JNI,并且很好奇我在java.lang包中看到了某些本地方法的机器特定实现。Thread#currentThread(), 例如。

我在[JDK_HOME] / jre / bin中找到了一堆DLL,但是就像我说的那样,我正在尝试查找源代码。

有谁知道在哪里可以找到本地源代码?它甚至可用,还是按Sun分类(哎呀,我的意思是“我们要赢它” Oracle)?


问题答案:

对于JDK6,你可以从java.net下载源代码。因为java.lang故事从开始j2se/src/share/native/java/lang/,然后搜索… JDK7稍微重新排列了目录结构。

某些方法(例如Object.hashCode)可以由热点代替或通过JNI / Java实现。

JDK6是通过Java研究许可(JRL)和Java内部使用许可(JIUL)免费获得许可的。JDK7和OpenJDK6在GPL 2下获得了CLASSPATH例外的许可(大致而言,你可以链接到它而不会感染GNU病毒)。



 类似资料:
  • 问题内容: 在哪里可以找到javax.crypto源代码? --update 感谢OpenJdk版本,但是jdk6版本呢? 问题答案: 下载链接 http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/tip/src/share/classes/javax/crypto(OpenJDK版本) http://download.java.net/jdk6/sourc

  • 问题内容: 我想看看Java API中的方法是做什么的。所以我想要JDK源代码。在重新安装Linux之前,我先安装了包含所有正式源代码的软件包。我只需要告诉Eclipse这个文件在哪里,就可以看到代码。但是现在我没有文件了… 所以问题是:在哪里可以找到它? 问题答案: 你尚未说出所需的版本, JDK 8源代码的存档以及JDK 7和JDK 6。 此外,你可以浏览或克隆的Mercurial库:8,7,

  • 问题内容: 我试图在glibc源代码中找到select()源代码(Linux,i386架构),但我找不到任何东西(与所述体系结构有关) 谁能指出我的select()源代码? 问题答案: select()不是libc的函数,而是内核函数,因此您需要查看内核源代码。 您可以通过查看手册页来说明这一点:如果在第2节中,则为内核函数;如果在第3节中,则为标准C库的函数,在您的情况下为glibc。 编辑:像

  • 问题内容: 我知道那个电话 。 类中的方法签名: 我想查看用于计算它的实际实现代码。 问题答案: 安装JDK时,可以在内部找到标准库的源代码但是,这对您没有帮助,因为实现如下: 因此,它实际上只是一个本地调用,可能由Java在不同平台上以不同方式实现。 但是,作为状态文档: 为了帮助确保Java程序的可移植性,此软件包中某些数字函数的定义要求它们产生与某些已发布算法相同的结果。这些算法可从著名的网

  • 问题内容: 在Linux中,只要有源代码树,在哪里可以找到所有系统调用的源代码?另外,如果我想查找特定系统调用的源代码和程序集,是否可以在终端中键入以下内容 ? 问题答案: 您需要Linux内核源代码才能查看系统调用的实际源代码。手册页(如果安装在本地系统上)仅包含调用的文档,而不包含调用源本身。 对于您来说不幸的是,系统调用并不仅仅存储在整个内核树中的一个特定位置。这是因为各种系统调用可以引用系

  • 问题内容: 我想重写JDK 的实现并重新编译。 在哪里可以找到JDK8 / JavaFX 8的源代码? 问题答案: JavaFX 8的源可在以下位置获得: http://hg.openjdk.java.net/openjfx/8/master/rt 今天,JavaFX 8几乎是完全开源的。 使用OpenJDK 8构建JavaFX 8的说明