• 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字符,每个字符可以只使用一个字节代表。





  • 相关阅读:
    GBPR: Group Preference Based Bayesian Personalized Ranking for One-Class Collaborative Filtering-IJACA 2013_20160421
    BPR: Bayesian Personalized Ranking from Implicit Feedback-CoRR 2012——20160421
    基于矩阵分解的推荐算法
    svmlight使用说明
    论文笔记Outline
    Libliner 中的-s 参数选择:primal 和dual
    查询日志方法
    集合 Vector ArrayList 集合一
    c语言 常用知识点
    简单的c语言小程序 回光返照
  • 原文地址:https://www.cnblogs.com/java20130722/p/3207232.html
Copyright © 2020-2023  润新知