JNI的全称是Java Native Interface,它是Java平台的一个标准特性,允许Java代码和C/C++代码进行互操作。
JNI技术使得我们既可以享受Java平台的优势,又能兼顾遗留的C/C++代码,或者享受C/C++代码的性能等优势。
但是,JNI技术会损失Java程序的跨平台特性,因此我们应该尽量避免使用JNI技术。
JNI是一个双向接口,它既可以允许Java代码调用C/C++代码,又能允许C/C++代码调用Java代码;前者的使用场景比较普遍,比如Java中的native方法;后者的使用场景则比较少见,例如在浏览器中执行Java applet程序,此时浏览器中嵌入了一个JVM库,由它解释Java代码。