1. 基本数据类型
基本数据类型可以直接与C/C++的相应基本数据类型映射,JNI用类型定义使得这种映射对开发人员透明
Java类型 | JNI类型 | C/C++类型 | 大小 |
---|---|---|---|
Boolean | Jblloean | unsigned char | 无符号8位 |
Byte | Jbyte | char | 有符号8位 |
Char | Jchar | unsigned short | 无符号16位 |
Short | Jshort | short | 有符号16位 |
Int | Jint | int | 有符号32位 |
Long | Jlong | long long | 有符号64位 |
Float | Jfloat | float | 32位 |
Double | Jdouble | double | 64位 |
2 引用数据类型
与基本数据类型不同,引用类型对原生方法是不透明的,它们内部的数据结构并不直接向原生代码公开
Java类型 | 原生类型 |
---|---|
java.lang.Class | jclass |
java.lang.Throwable | jthorwable |
java.lang.String | jstring |
Other objects | jobjects |
java.lang.Object[] | jobjectArray |
boolean[] | jbooleanArray |
byte[] | jbooleanArray |
char[] | jcharArray |
short[] | jshortArray |
int[] | jintArray |
long[] | jlongArray |
float[] | jfloatArray |
double[] | jdoubleArray |
Other arrays | Jarray |