- 写在前面的话
- 引言
- 第 1 章 对象入门
- 第 2 章 一切都是对象
- 第 3 章 控制程序流程
- 第 4 章 初始化和清除
- 第 5 章 隐藏实施过程
- 第 6 章 类再生
- 第 7 章 多形性
- 第 8 章 对象的容纳
- 第 9 章 违例差错控制
- 第 10 章 Java IO 系统
- 第 11 章 运行期类型鉴定
- 第 12 章 传递和返回对象
- 第 十三 章 创建窗口和程序片
- 第 14 章 多线程
- 第 15 章 网络编程
- 第 16 章 设计范式
- 第 17 章 项目
- 附录 A 使用非 JAVA 代码
- 附录 B 对比 C++和 Java
- 附录 C Java 编程规则
- 附录 D 性能
- 附录 E 关于垃圾收集的一些话
- 附录 F 推荐读物
附录 A 使用非 JAVA 代码
JAVA 语言及其标准 API(应用程序编程接口)应付应用程序的编写已绰绰有余。但在某些情况下,还是必须使用非 JAVA 编码。例如,我们有时要访问操作系统的专用特性,与特殊的硬件设备打交道,重复使用现有的非 Java 接口,或者要使用“对时间敏感”的代码段,等等。与非 Java 代码的沟通要求获得编译器和“虚拟机”的专门支持,并需附加的工具将 Java 代码映射成非 Java 代码(也有一个简单方法:在第 15 章的“一个 Web 应用”小节中,有个例子解释了如何利用标准输入输出同非 Java 代码连接)。目前,不同的开发商为我们提供了不同的方案:Java 1.1 有“Java 固有接口”(Java Native Interface,JNI),网景提出了自己的“Java 运行期接口”(Java Runtime Interface)计划,而微软提供了 J/Direct、“本源接口”(Raw Native Interface,RNI)以及 Java/COM 集成方案。
各开发商在这个问题上所持的不同态度对程序员是非常不利的。若 Java 应用必须调用固有方法,则程序员或许要实现固有方法的不同版本——具体由应用程序运行的平台决定。程序员也许实际需要不同版本的 Java 代码,以及不同的 Java 虚拟机。
另一个方案是 CORBA(通用对象请求代理结构),这是由 OMG(对象管理组,一家非赢利性的公司协会)开发的一种集成技术。CORBA 并非任何语言的一部分,只是实现通用通信总线及服务的一种规范。利用它可在由不同语言实现的对象之间实现“相互操作”的能力。这种通信总线的名字叫作 ORB(对象请求代理),是由其他开发商实现的一种产品,但并不属于 Java 语言规范的一部分。
本附录将对 JNI,J/DIRECT,RNI,JAVA/COM 集成和 CORBA 进行概述。但不会作更深层次的探讨,甚至有时还假定读者已对相关的概念和技术有了一定程度的认识。但到最后,大家应该能够自行比较不同的方法,并根据自己要解决的问题挑选出最恰当的一种。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论