jni開發中,java數據類型並不是直接在jni使用,
基本數據類型
java數據類型 | jni 本地類型 | c/c++ 數據類型 | 數據類型描述 |
---|---|---|---|
boolean | Jboolean | unsigned char | C/C++無符號八位整數 |
byte | 同上 | signed char | C/C++有符號8位整數 |
char | 同上 | unsigned short | C/C++無符號16位整數 |
short | 同上 | signed short | C/C++有符號16位整數 |
int | 同上 | signed int | C/C++有符號32位整數 |
long | 同上 | signed long | C/C++有符號64位整數 |
float | 同上 | float | C/C++32位浮點數 |
double | 同上 | double | C/C++64位浮點數 |
引用數據類型 網上查
數據類型描述符
jvm虛擬機中,存儲數據類型的名稱時,是使用指定的描述符來存儲,而不是我們習慣的int float
- 示例
3.1 例如我們要表示一個 String 類
Java 類型:java.lang.String
JNI 描述符:Ljava/lang/String;
即一個 Java 類對應的描述符,就是 L 加上類的全名,其中 . 要換成 / ,最後 不要忘掉末尾的分號。
3.2 假如我們想要表示數組的話
Java 類型:String[]
JNI 描述符:[Ljava/lang/String;
Java 類型:int[][]
JNI 描述符:[[I
數組就是簡單的在類型描述符前加 [ 即可,二維數組就是兩個 [ ,以此類推。
3.3 方法
Java 方法:long f (int n, String s, int[] arr);
JNI 描述符:(ILjava/lang/String;[I)J
Java 方法:void f ();
JNI 描述符:()V
括號內是每個參數的類型符,括號外就是返回值的類型符。
————————————————
原文鏈接:https://blog.csdn.net/afei__/article/details/80899758