本书介绍了 JNI 的设计思想,对这种思想的理解是使用 JNI 的各种特性的基础。 本书有一部分是 JAVA2平台上面的 JNI 特征的规范说明。JNI 程序员可以把这部分用作一个 手册。JVM 开发者在实现虚拟机的时候必须遵守这些规范。 JNI(Java Native Interface)是Java平台的一个重要特性,它允许Java代码与用其他编程语言(主要是C/C++)编写的本地代码进行交互。JNI最初于1997年发布,其设计思想部分来源于Netscape的Java Runtime Interface (JRI)。JNI为开发者提供了一个可以复用以前编写的C/C++代码的机制,并且在Java虚拟机(JVM)的实现中具有一定的角色。 JNI的存在意义在于允许Java平台在使用Java语言的同时,也能够利用已有的本地代码,包括访问特定于系统的功能以及提高程序运行效率。本地方法(native methods)指的是使用Java以外的语言编写的供Java调用的函数。JNI不仅支持Java调用本地方法,也支持将Java虚拟机嵌入到本地程序中。 在具体应用中,JNI可以在四种情况下使用:复用旧的C/C++代码、实现Java虚拟机、学习不同语言间的协作以及将虚拟机实现整合到C/C++程序中。然而,使用JNI也有其缺点,主要表现在跨平台和安全性两个方面。一旦涉及本地代码,程序就不再具备Java的跨平台特性,且安全性会受到影响,不当的本地代码使用可能导致程序崩溃。为了降低耦合性,通常建议将本地方法集中在少数几个类中。 在决定是否使用JNI时,开发者应该先考虑是否有替代方案。例如,可以通过TCP/IP或IPC进行进程间通信,使用JDBC连接数据库,或者采用分布式对象技术如JAVA IDL API。如果同一进程内的交互无法避免,例如需要访问特殊系统特性、调用已有的本地库或在Java程序中优化性能(如算法计算和图形渲染),那么使用JNI成为必要。 JNI的设计思想包括了对本地方法和Java对象内存结构的访问、数据类型转换、异常处理等方面的规定。这些规范是JVM开发者在实现虚拟机时必须遵守的。JNI在JDK 1.0中首次被引入,并随着Java平台的发展而演化。尽管最初版本的JNI存在一些问题,比如对对象内存布局的不明确规范,但后续版本对这些问题进行了改进。 JNI编程指南为开发者提供了系统的介绍和手册式的技术规范。初学者可以从中获得对JNI概念的理解和基本用法,而有经验的开发者和JVM实现者则能从中获得更深入的技术细节。JNI编程指南涵盖的内容包括Java平台和系统环境的背景、JNI的角色和演化历史,以及JNI的技术规范。它不仅是一本编程指南,也是一本手册,包含了丰富的例子来解释JNI的特性和使用方法。对于那些需要将虚拟机嵌入本地程序或整合虚拟机实现到C/C++程序中的开发者来说,这本书提供了一个宝贵的资源。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/download_crawler_static/5304122/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/5304122/bg2.jpg)
![](https://csdnimg.cn/release/download_crawler_static/5304122/bg3.jpg)
![](https://csdnimg.cn/release/download_crawler_static/5304122/bg4.jpg)
![](https://csdnimg.cn/release/download_crawler_static/5304122/bg5.jpg)
剩余77页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- yangcenyi2015-01-13对新手还可以
- 追逐_繁星2016-05-23入门还可以,但是如果进阶的话就显得不足
- MillionSky2014-10-28中文版可以作为参考。最终主要看的是英文版。有些语句英文版更准确。
- loster102015-08-13资源还可以,找时间好好看看
- hua3x2016-02-19不错,介绍的很详细,值得学习
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 17
- 资源: 12
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)