Java Native Interface (JNI)编程指南与规范
"JNI英文手册,全称Java™ Native Interface Programmer's Guide and Specification,由Sheng Liang编写,由Addison-Wesley出版。本书详细介绍了JNI,是针对那些希望将Java应用程序与C或C++等遗留代码集成、将Java虚拟机嵌入到现有C或C++应用中、实现Java虚拟机,或者对语言互操作性中的技术问题感兴趣的开发者的重要参考。书中涵盖了垃圾收集、多线程等关键主题。" JNI(Java Native Interface)是Java平台的一部分,它提供了一套接口和工具,使得Java代码能够与用其他语言(如C和C++)编写的本地代码进行交互。这种交互能力对于开发人员来说非常重要,因为有些任务可能在Java中难以实现或者效率较低,而使用本地代码可以更高效地处理。 本书首先会介绍JNI的基础概念,包括如何设置开发环境,创建本地方法,以及如何在Java代码中调用这些本地方法。JNI允许Java应用程序通过`System.loadLibrary`或`java.lang.ClassLoader`加载动态链接库(DLLs或SO文件),然后通过`java.lang.reflect.Method`的invoke方法调用其中的函数。 在垃圾收集方面,JNI提供了处理Java对象的机制,使得本地代码可以正确地引用和释放Java对象,而不干扰Java虚拟机的垃圾收集过程。这通常涉及到对Java对象的引用使用全球唯一标识符(Global References)、弱全局引用(Weak Global References)和局部引用(Local References)。理解如何管理这些引用是避免内存泄漏的关键。 多线程支持是另一个重要的话题。JNI允许本地代码创建和管理Java线程,同时处理线程同步问题。开发者需要理解如何在多线程环境中正确地锁定和解锁监视器,以防止死锁和数据不一致性。 此外,JNI还涉及到了异常处理,使本地代码能够抛出和捕获Java异常。它提供了在本地代码中检查和抛出Java异常的API,这对于在本地代码中处理错误和异常情况至关重要。 书中还会讨论类型映射,即如何在Java和本地代码之间转换数据类型。例如,将Java的`String`对象转换为C的字符数组,或将Java的`int`、`float`等基本类型映射到相应的C类型。 最后,JNI手册通常会包含一些示例代码,帮助读者更好地理解和应用JNI接口。这些示例通常涵盖从简单的函数调用到复杂的对象交互的各种情况。 "JNI英文手册"是一本深入讲解JNI的权威指南,对于任何需要在Java和非Java代码之间建立桥梁的开发者来说,都是不可或缺的参考资料。它详尽地阐述了与Java平台的原生交互技术,涵盖了从基础到高级的各个方面,帮助开发者克服语言间的障碍,实现高效的应用程序集成。
![](https://csdnimg.cn/release/download_crawler_static/10024273/bg10.jpg)
![](https://csdnimg.cn/release/download_crawler_static/10024273/bg11.jpg)
![](https://csdnimg.cn/release/download_crawler_static/10024273/bg12.jpg)
![](https://csdnimg.cn/release/download_crawler_static/10024273/bg13.jpg)
![](https://csdnimg.cn/release/download_crawler_static/10024273/bg14.jpg)
剩余317页未读,继续阅读
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/30e74f2660b242d083be26d8ba1e6b96_baidu_38131614.jpg!1)
- 粉丝: 17
- 资源: 12
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Lombok 快速入门与注解详解
- SpringSecurity实战:声明式安全控制框架解析
- XML基础教程:从数据传输到存储解析
- Matlab实现图像空间平移与镜像变换示例
- Python流程控制与运算符详解
- Python基础:类型转换与循环语句
- 辰科CD-6024-4控制器说明书:LED亮度调节与触发功能解析
- AE particular插件全面解析:英汉对照与关键参数
- Shell脚本实践:创建tar包、字符串累加与简易运算器
- TMS320F28335:浮点处理器与ADC详解
- 互联网基础与结构解析:从ARPANET到多层次ISP
- Redhat系统中构建与Windows共享的Samba服务器实战
- microPython编程指南:从入门到实践
- 数据结构实验:顺序构建并遍历链表
- NVIDIA TX2系统安装与恢复指南
- C语言实现贪吃蛇游戏基础代码
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)