zoukankan      html  css  js  c++  java
  • JNI

    Java侧使用Native方法:

    1.加载对应的JNI库

    2.声明由native修饰的函数

    java 函数找到jni函数的方法

    1.静态注册:先通过函数名,找到后,保存函数指针

    2.动态注册,registerNativeMethods()(在JNI_ONLoad中动态注册)

    JNI层调用Java方法:

      通过JNIEnv调用callVoidMethoid方法

    JNIEvn

    虚拟机在JNI的代表,每个进程只有一个JNIEvn;与线程相关,线程间不能共享JNIEvn

    作用:调用Java函数,操作Java对象

    通过javaVM的attash... 和ditash...分别获取和释放JNIEnv结构体

    jfieldID,jmethodID分别取出java类的成员变量和方法

    垃圾回收

    (**将Java对象的指针赋值给jNI层,该指针的引用计数不会增加)

    JNI提供的三中类型引用:

    全局引用(不会被释放,需要主动释放),本地引用(JNI层函数返回,对象销毁(注意点:最好立即释放)),弱全局引用(使用之前调用)

    JNI中的异常处理

      发生异常后不会中断函数执行。

      提供三种方法处理异常:ExceptionOccured(判断是否有异常发生),ExceptionClear用来清除异常,ThrowNew(向java层抛出异常)

  • 相关阅读:
    centos 安装mysql
    mysql中文排序
    在Centos中yum安装和卸载软件的使用方法
    gcc升级方法
    tar命令
    wget命令
    php7安装及和php5的共存
    PHP SESSION 保存到数据库
    setTimeout延时0毫秒的作用和问题
    css display visibility
  • 原文地址:https://www.cnblogs.com/jobs1/p/12053760.html
Copyright © 2011-2022 走看看