阅读Java源码,经常能看到
native关键字修饰的方法,如Object类中的getClass()、clone()等等方法,都使用了native关键字,使用native的作用是什么呢?
简单来讲,使用native修饰的方法,是不能被实现的方法,底层是调用的本地API,常见的就是调用C语言开发的API。
参考文章:Java关键字——native
虽然使用native修饰的方法不能被实现,但是可以自己去开发一个本地API,然后就可以使用native修饰的方法调用该API,这样也算是变相实现了native修饰的方法。
开发步骤大致如下:
native方法;javac命令编译Java代码;javah -jni xxx命令生成xxx.h的c语言文件;xxx.h文件,实现要被调用的方法;xxx.h文件,生成对应的dll文件;dll文件,即可调用xxx.h中实现的方法。native一般用于Java语言无法直接实现的功能,比如操作系统硬件,如:内存、打印机等等。此类功能可以使用C、C++等语言开发,编译后生成dll库文件,然后使用Java调用即可。
由此可见,要想开发native类型的方法,最好要掌握一门其他语言。
native方法其实就是Java中的JNI(Java Native Interface)的实现方式,JNI详细情况可自行了解,上面参考文章中也有介绍。
javapublic class HelloJNI {
// native 关键字告诉 JVM 调用的是该方法在外部定义
private native void helloJNI();
static{
System.loadLibrary("helloJNI"); //载入本地库
}
public static void main(String[] args) {
HelloJNI jni = new HelloJNI();
jni.helloJNI();
}
}
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!