JNI像一個螺絲冒銜接這java語言和c或者c++等其它語言。
JNI的基本語法
JNI的類型
1、基本數據類型
以下是java的基本數據類型和jni中的基本數據類型的比較,及各類型的字節。
2、引用類型
Java中不同的引用類型在JNI當中也有對應的引用類型,以下樹形表示:
當在C語言中使用時,所有的JNI引用類型都被定義爲jobject類型。typedef jobject jclass;
jvalue 類型
jvalue類型是一個基本數據類型和引用類型的集合,定義方式如下:
typedef union jvalue { jboolean z; jbyte b; jchar c; jshort s; jint i; jlong j; jfloat f; jdouble d; jobject l; } jvalue;
class的說明
(1).類和接口的描述符在java當中使用”.”,如:java.lang.String
而在JNI當中是用”/”,如:java/lang/String
(2).數組類型的引用類型用”[”表示。如 int[](java中的表示法) ß---à [I([ 大寫的i 是JNI中的表示法,[ 的個數表示數組的維數 二維則是 [[ I )
(3)域的說明,和java比較如下表:
注意:引用類型的域 用L開頭,並且以”;”作爲結尾。數組類型和class說明的一樣。
(4).Method說明
JNI中的方法的聲明規則:先寫參數列表,再寫返回類型,以下是例子。