日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java笔记-JNI各种签名以及例子

發布時間:2025/3/15 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java笔记-JNI各种签名以及例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

基本概念

栗子說明


?

基本概念

在JNI中有很多函數某些參數都要使用簽名,如下:

其中的sig就是簽名;

簽名是一種用參數個數和類型區分同名方法的手段,即解決方法重載問題。

其中要特別注意的是:

? ? ? ? ??1. 類描述符開頭的'L'與結尾的';'必須要有;

? ? ? ? ??2. 數組描述符,開頭的'['必須有;

? ? ? ? ??3. 方法描述符規則: "(各參數描述符)返回值描述符",其中參數描述符間沒有任何分隔符號。

描述符很重要,請爛熟于心. 寫JNI,對于錯誤的簽名一定要特別敏感,此時編譯器幫不上忙,執行make 前仔細檢查你的代碼。

給出如下的幾個表:

下面對這張表進行補充本補充來源于百度

1. 基本類型簽名:

JavaNativeSignature
bytejbyteB
charjcharC
doublejdoubleD
floatjfloatF
intjintI
shortjshortS
longjlongJ
booleanjbooleanZ
voidvoidV

2. 引用數據類型的轉換

JavaNativeSignature
所有對象jobjectL+classname +;
ClassjclassLjava/lang/Class;
StringjstringLjava/lang/String;
ThrowablejthrowableLjava/lang/Throwable;
Object[]jobjectArray[L+classname +;
byte[]jbyteArray[B
char[]jcharArray[C
double[]jdoubleArray[D
float[]jfloatArray[F
int[]jintArray[I
short[]jshortArray[S
long[]jlongArray[J
boolean[]jbooleanArray[Z

?

栗子說明

舉幾個例子:

如下Java 方法:
long f (int n, String s, int[] arr);
signature: "(ILjava/lang/String;[I)J"

?

編碼過程中,對象的簽名2中方法都是可以行的。?
例如: java 中 String?
? ? ? ? ? 1.直接簽名:java/lang/String?
? ? ? ? ? 2.標準簽名:Ljava/lang/String;

?

總結

以上是生活随笔為你收集整理的Java笔记-JNI各种签名以及例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。