JNI_Java Native Interface】的更多相关文章

一.简介 Java Native Interface(JNI),java与c/c++交互的接口,下面是一个简单是示例. javah 可以生成native方法对应的头文件,javap 可以查看方法或者属性的签名. 二.示例 1.书写带native的java代码 package com.jni; import java.util.Date; //javah com.jni.Hello //com_jni_Hello.h public class Hello { public int property…
本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 在这里只讨论调用JNI方法可能会出现的异常, 在本地方法里捕捉并抛出异常 下面的例子说明怎样声明一个可能抛出异常的本地方法: class CatchThrow { //声明一个本地方法,并可能会抛出不合法参数异常 private native void doit() throws IllegalArgumentException; private vo…
本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 JNI里的多线程 在本地方法里写有关多线程的代码时,需要知道下面几个约束: 一个JNIEnv指针只在与它关联的线程里有效,也就是说,在线程间传递JNIEnv指针和在多线程环境里通过缓存来使用它是不允许和不安全的.JVM在同一个线程里多次调用同一个本地方法时传递的是同一个JNIEnv指针,但在不同的线程里调用同一个本地方法时传递的是不同的JNIEnv指针…
本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 JNI支持将类实例和数组类型(如jobject,jclass,jstring,jarray)作为不透明的引用.本地代码不直接检查不透明指针的内容,而是通过使用JNI方法来得到一个指向数据结构的指针的不透明引用.也就是说JNI操作的内容都是引用,因此我们只需要知道在JNI中有哪些引用.JNI支持三种不透明的引用:本地引用.全局引用,弱全局引用. 本地引用…
本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 Java编程里会使用到两种类型:基本类型(如int,float等)和引用类型(如class,instance,arrays),JNI编程里对这两种的类型的处理方法也是不一样的. JNI定义了与Java的基本类型和引用类型相对应的C/C++类型: Java类型 本地类型(JNI中使用) boolean jboolean int jint float jf…
本文是<Java Native Interface Programmer's Guide and Specification>的读书笔记 Java Native Interface可以让编程人员在Java里调用其他语言编写的方法,来弥补Java运行效率低下的缺点: jni可以用来做什么?: 在Java应用中使用本地编程语言如c/c++编写的代码: 将Java虚拟机融入到由C/c++编写的的应用中: 实现一个Java虚拟机: 从技术层面理解语言的互操作性,特别是垃圾收集机制和多线程实现机制: j…
http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html 1. Introduction Java Native Interface OverviewBackground JDK 1.0 Native Method InterfaceJava Runtime InterfaceRaw Native Interface and Java/COM Interface ObjectivesJava Native…
JNI(Java Native Interface,JAVA原生接口) 使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互. 问:为什么要进行交互? 首先,Java语言提供的类库无法满足要求,且在数学运算,实时渲染的游戏上,音视频处理等方面上与C/C++相比效率稍低. 然后,Java语言无法直接操作硬件,C/C++代码不仅能操作硬件而且还能发挥硬件最佳性能. 接着,使用Java调用本地的C/C++代码所写的库,省去了重复开发的麻烦,并且可以利用很多开源的库提高程序效率.…
Java Native Interface Specification(JNI) 使用场景: 需要的功能,标准的java不能提供 有了一个用其他的语言写好的工具包,希望用java去访问它 当需要高性能的功能时(时间是最主要的因素) 通过本地方法(通过JNI),可以完成: 创建,检查,和更新java 对象(包括数组和Strings) 调用java方法 捕捉和抛出异常 加载类和获取类信息 运行时类型检查…
概述 Java Native Interface译为Java原生接口,简称JNI.Java并不是完美的,它的不足体现在运行速度要比传统的C++慢上许多,并且无法直接访问到操作系统底层,为此Java提供了JNI实现对于底层访问.说得通俗点,通过JNI可以调用其他程序(本地语言),这个语言要可以和操作系统直接交互(C和C++) Native native修饰的函数简单的说就是调用一个非Java代码写的接口,并且native这个关键字可以和其他标识符号连用,但唯独abstract除外(无实现体). N…