zoukankan      html  css  js  c++  java
  • JNI(3)

    JNI(3)

    基本类型

    java 基本类型和 原始机器类型

    Java Type
    Native Type
    Description
    boolean
    jboolean
    unsigned 8 
    byte
    jbyte
    signed 8 bits
    char
    jchar
    unsigned 16 bits
    short
    jshort
    signed 16 bits
    int
    jint
    signed 32 bits
    long
    jlong
    signed 64 bits
    float
    jfloat
    32 bits
    double
    jdouble
    64 bits
    void
    void

    N/A


    引用类型

    JNI包含一定数量的与java对象已对应的引用类型


    在C中,所有其他引用类型的定义是一样的:
    typedef jobject jclass;

    在C++中,JNI介绍一个套虚的类来加强与子类的关系:
    class _jobject {};
    class _jclass : public _jobject {};
    ...
    typedef _jobject *jobject;
    typedef _jclass *jclass;

    字段和方法IDs

    方法和字段ids是普通的C类型指针:
    struct _jfieldID;              /* opaque structure */
    typedef struct _jfieldID *jfieldID;   /* field IDs */
    
    struct _jmethodID;              /* opaque structure */
    typedef struct _jmethodID *jmethodID; /* method IDs */

    值类型

    jvalue 联合类型通常作为参数数组的元素类型。声明如下:
    typedef union jvalue {
        jboolean z;
        jbyte    b;
        jchar    c;
        jshort   s;
        jint     i;
        jlong    j;
        jfloat   f;
        jdouble  d;
        jobject  l;
    } jvalue;

    类型标志

    JNI使用Java VM的表示类型的标志。
    Type SignatureJava Type
    Z
    boolean
    B
    byte
    C
    char
    S
    short
    I
    int
    J
    long
    F
    float
    D
    double
    L fully-qualified-class ;
    fully-qualified-class
    [ type
    type[]
    ( arg-types ) ret-type
    method type
    例如:java 方法:
    long f (int n, String s, int[] arr);
    对应的类型标识
    (ILjava/lang/String;[I)J

    修改UTFf-8的字符串

    JNI使用修改的UTF-8字符串来代表不同的字符串类型。Java VM同样可以使用修改的UTF-8字符串。修改后的UTF-8字符串已编码过的,字符序列只包含非空的ASCII字符,每个字符可以只使用一个字节代表。





  • 相关阅读:
    JavaScript基础
    WordPress站点绑定多个域名
    linux下如何把php升级到5.6
    ansible shell 之运行后台程序
    Redhat7 开机启动服务
    模拟jenkins通过shell给ansible传入变量
    ansible-playbook权限提升多种方式
    ansible删除目录下所有内容
    ansible 文件和目录操作
    linux 用户和组管理
  • 原文地址:https://www.cnblogs.com/java20130722/p/3207232.html
Copyright © 2011-2022 走看看