初次见到
private native void start0();
native是什么?
即JNI,Java Native Interface (Java本地接口),Java平台提供的用户和本地C代码进行交互操作的API。
Java code < ------ > C/C++ code
主要用于Java与C/C++联合开发的时候。使用native关键字说明这个方法是原生函数,也就是这个方法使用C/C++语言实现的,并且被编译成了DLL,由java去调用。这些函数的实现体在DLL中,JDK的源代码并不包含。对于不同的平台也是不同的。这也是Java的底层机制,实际上Java就是在不同的平台
上调用不同的native方法实现对 “操作系统” 的访问。
native运行流程?
当java语言中出现native时,说明以不在Java范围内,需要调用底层的C语言接口实现,进入本地方法栈,由javah命令调
用java方法的JNI接口(本地方法接口)生成c/c++头文件(.h文件),经过C编译器和链接器(.c和.cpp)编译并且调用动态链接库(DLL文件),
然后由JVM的执行引擎执行DLL文件( 具体由Java中的System.loadLibrary()方法加载DLL文件 ),最终完成此次运行。