JAVA基础——Native关键字

一:native声明

Java中native是关键字。它一般在本地声明,异地用C和C++来实现。它的声明有几点要注意:

1)native与访问控制符前后的关系不受限制。

2)必须在返回类型之前。

3)它一般为非抽象类方法。

4)native方法在异地实现,象抽象方法一样,所以没有方法体,以分号结束。如下列5种声明:

         native public void f();                         正确。

         private native void f();                        正确。

         protected int native f();                      错误,返回类型位置不对,返回类型必须在native之后。

         public abstract native void f();            native必然不是abstract的。

         native int f(){}                                     错误,因为存在方法体{}

         public static native f();                         正确。static与native方法位置随意。

二:

JNI是Java本机接口(Java Native Interface),是一个本机编程接口,它是Java软件开发工具箱(Java Software Development Kit,SDK)的一部分。JNI允许Java代码使用以其他语言编写的代码和代码库。Invocation API(JNI的一部分)可以用来将Java虚拟机(JVM)嵌入到本机应用程序中,从而允许程序员从本机代码内部调用Java代码。

1.将您的所有本地方法都封装到一个类中,这个类调用单个的DLL。对每一种目标操作系统平台,都可以用特定于适当平台的版本的DLL。这样可以将本地代码的影响减少到最小,并有助于将以后所需要的移植问题考虑在内。

  2.本地方法尽量简单。尽量使您的本地方法对第三方(包括Microsoft)运行时DLL的依赖减少到最小。使您的本地方法尽量独立,以将加载您的DLL和应用程序所需的开销减少到最小。如果需要运行时DLL,必须随应用程序一起提供。

    JNI的书写步骤如下:

    a.编写带有native声明的方法的Java类

    b.使用javac命令编译编写的Java类

    c.使用java -jni ****来生成后缀名为.h的头文件

    d.使用其他语言(C、C++)实现本地方法

    e.将本地方法编写的文件生成动态链接库

原文地址:https://www.cnblogs.com/huan-guo/p/8463132.html