1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        JNI:如何操作數(shù)組

        共 1279字,需瀏覽 3分鐘

         ·

        2022-03-04 00:59

        1. 數(shù)組的分類

        • 數(shù)組分為兩種

        1. 基本數(shù)據(jù)類型的數(shù)組

        2. 對象類型(Object[])的數(shù)組

        • 一個能通用于兩種不同數(shù)據(jù)類型數(shù)組的函數(shù)

        GetArrayLength( jarray array);//獲取長度

        2. 基本數(shù)據(jù)類型數(shù)組

        • 處理基本數(shù)據(jù)類型數(shù)組的時候,也是跟處理字符串類型,有很相似的函數(shù)

        GetArrayElements( Array arr, jboolean* isCopied);

        這類函數(shù)可以把Java基本類型的數(shù)組轉(zhuǎn)換到C/C++的數(shù)組,有兩種處理方式,一是拷貝一份傳回本地代碼,另一個是把指向Java數(shù)組的指針直接傳回到本地代碼。處理完本地的數(shù)組后,通過ReleaseArrayElements來釋放數(shù)組。

        ReleaseArrayElements( Array arr, * array, jint mode );

        用這個函數(shù)可以選擇將如何處理Java跟C++的數(shù)組。是提交、還是撤銷等;內(nèi)存釋放還是不釋放等。

        mode 可以取下面的值:

        1. 0 對Java的數(shù)組進行更新,并釋放 C/C++ 的數(shù)組

        2. JNI_COMMIT 對Java的數(shù)組進行更新,但是不釋放C/C++的數(shù)組

        3. JNI_ABORT ?對Java的數(shù)組不進行更新,釋放C/C++的數(shù)組

        • JDK 1.2 為了增加直接傳回指向 Java 數(shù)組的指針,而增加了以下函數(shù)。但是同樣的,也會有同GetStringCritical的死鎖問題

        GetPrimitiveArrayCritical( jarray arr, jboolan* isCopied);ReleasePrimitiveArrayCritical(jarray arr, void array, jint mode);
        • 在C/C++預(yù)先開辟一塊內(nèi)存,然后把Java基本數(shù)組類型的數(shù)組拷貝到這塊內(nèi)存當(dāng)中。跟GetStringRegion原理相似

        GetArrayRegion( Array arr, jsize, start, jsize len, * buffer);
        • 把Java基本數(shù)據(jù)類型的數(shù)組中的指定范圍的元素用 C/C++的數(shù)組中的元素來賦值

        SetArrayRegion( Array arr, jsize start, jsize len, const * buffer );
        • 指定一個長度,然后返回相應(yīng)Java基本類型的數(shù)組

        Array NewArray( jsize len );

        3. 對象類型數(shù)組

        Object[]

        JNI 沒有提供直接把Java的對象類型數(shù)組( Object[] )直接轉(zhuǎn)到 C/C++ 的 jobject[] 數(shù)組的函數(shù)。而是直接通過GetObjectArrayElement /SetObjectArrayElement 這樣的函數(shù)來對Java的Object[]數(shù)組進行操作。

        分享&在看

        瀏覽 46
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            把雪白的岳弄的好爽 | 性xxxx裸体夜总会 | free欧美xxxxhd777 | 日韩做爱视频看看 | 一本大道久久久久精 | 日韩成人在线观看视频 | 办公室玉臀娇吟刘诗诗 | 影音先锋激情网 | 曰本护士hd丰满护士 | 久久国产AV |