JVM中的本机库和本机方法接口是什么

时间:2015-08-20 04:31:03

标签: java jvm native

Jvm figure我在研究JVM时遇到了这个数字,我理解除了Native方法接口和本机方法库之外的所有组件。那究竟是什么呢?

4 个答案:

答案 0 :(得分:2)

本机方法接口:本机方法接口是将本机方法库(在C,C ++等中实现)与JVM连接以执行本机方法的接口。

本机方法库:在本机代码中实现。

有关详细信息,请参阅this链接。

答案 1 :(得分:1)

本机方法接口(JNI)是JDK的一部分,它将Java代码与用其他编程语言(如C,C ++和汇编语言)编写的本机应用程序和库相连接。

为什么使用JNI?

  • 使用依赖于平台且Java类库中不支持的功能。
  • 通过使用低级语言实现对时间要求严格的代码来提高性能。
  • 访问已经用另一种编程语言编写的库。

本机方法库是用其他编程语言(例如C,C ++和汇编语言)编写的库。 这些库可以通过JNI加载。

因此,您发布的图片表明JNI允许访问本机方法库。

答案 2 :(得分:0)

Java Native Interface: 您在学习Java虚拟机功能时可能会遇到上图。当您第一次安装和使用Java时,没有像Native库那样的东西。当我们开发自己的库时,这些都被添加了,但它应该是其他语言。

当您使用其他语言开发功能时,Java虚拟机将在Java应用程序的执行级别(第三级)包含这些库。

答案 3 :(得分:0)

此外,jvm $JAVA_HOME/jre/lib/amd64/中还有本机库,它们是通过反射(null/boot classloader)加载的核心库,这就是为什么它们在运行时可用的原因-编译时,我们可以使用getClass()之类的Object类的本地方法。因此,不仅使用JNI进行自定义开发,而且Java的某些核心功能都被写入了本机中。