1、基本数据类型
JNI定义了一系列基本数据类型和引用数据类型与java相对应。
Java Language Type | Native Type | Description |
boolean | jboolean | unsigned 8 bits |
byte | jbyte | signed 8 bits |
short | jchar | unsigned 16 bits |
int | jint | signed 32 bits |
long | jlong | signed 64 bits |
float | jfloat | 32 bits |
double | jdouble | 64 bits |
观察能够发现,JNI基本数据类型只是比Java基本数据类型前多了个'j'而已。
2、引用数据类型
jobject (all objects)
jclass (java.lang.Class instances)
jstring (java.lang.String instances)
jarray (arrays)
jobjectArray (object[])
jbooleanArray (boolean[])
jcharArray (char[])
jshortArray (short[])
jintArray (int[])
jlongArray (long[])
jfloatArray (float[])
jdoubleArray (double[])
jthrowable java.lang.throwable
跟java一样,jobject是所有引用类型的父亲。看看是不是很容易理解?呵呵,关于jthrowable,JNI也是有线程概念的。
3、 The jvalue Type
Jvalue 是基本数据类型和引用数据类型的集合,它的定义如下:
typedef union jvalue{
jboolean z;
jbyte b;
jchar c;
jshort s;
jint i;
jlong j;
jfloat f;
jdouble d;
jobject l;
)jvalue;