<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 14.3 JNI的數據類型和類型簽名 JNI的數據類型包含兩種:基本類型和引用類型。基本類型主要有jboolean、jchar、jint等,它們和Java中的數據類型的對應關系如表14-1所示。 :-: 表14-1 JNI基本數據類型的對應關系 ![](https://img.kancloud.cn/64/2f/642faf34707b81caa8c652be16864c10_1351x512.png) JNI中的引用類型主要有類、對象和數組,它們和Java中的引用類型的對應關系如表14-2所示。 :-: 表14-2 JNI引用類型的對應關系 ![](https://img.kancloud.cn/22/f6/22f6fd95d5712af3420a9d14daef1475_1069x630.png) JNI的類型簽名標識了一個特定的Java類型,這個類型既可以是類和方法,也可以是數據類型。 類的簽名比較簡單,它采用“L+包名+類名+; ”的形式,只需要將其中的.替換為/即可。比如java.lang.String,它的簽名為Ljava/lang/String;,注意末尾的;也是簽名的一部分。 基本數據類型的簽名采用一系列大寫字母來表示,如表14-3所示。 :-: 表14-3 基本數據類型的簽名 ![](https://img.kancloud.cn/67/3e/673e35eb16d63714211816c3b4465f8f_1348x295.png) 從表14-3可以看出,基本數據類型的簽名是有規律的,一般為首字母的大寫,但是boolean除外,因為B已經被byte占用了,而long的簽名之所以不是L,那是因為L表示的是類的簽名。 對象和數組的簽名稍微復雜一些。對于對象來說,它的簽名就是對象所屬的類的簽名,比如String對象,它的簽名為Ljava/lang/String;。對于數組來說,它的簽名為[+類型簽名,比如int數組,其類型為int,而int的簽名為I,所以int數組的簽名就是[I,同理就可以得出如下的簽名對應關系: char[] [C float[] [F double[] [D long[] [J String[] [Ljava/lang/String; Object[] [Ljava/lang/Object; 對于多維數組來說,它的簽名為n個[+類型簽名,其中n表示數組的維度,比如,int[][]的簽名為[[I,其他情況可以依此類推。 方法的簽名為(參數類型簽名)+返回值類型簽名,這有點不好理解。舉個例子,如下方法:boolean fun1(int a, double b, int[] c),根據簽名的規則可以知道,它的參數類型的簽名連在一起是ID[I,返回值類型的簽名為Z,所以整個方法的簽名就是(ID[I)Z。再舉個例子,下面的方法:boolean fun1(int a, String b, int[] c),它的簽名是(ILjava/lang/String; [I)Z。為了能夠更好地理解方法的簽名格式,下面再給出兩個示例: int fun1() 簽名為 ()I void fun1(int i) 簽名為 (I)V
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看