java语言与其他语言的区别是_Java语言如何与其他语言进行交互

导语:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。下面我们来看看Java语言如何与其他语言进行交互,希望对大家有所帮助。

qr.yjbys

JNI是JavaNative Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。

从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他编程语言,只要调用约定受支持就可以了。使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的。例如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少要保证本地代码能工作在任何Java虚拟机环境。

JNI的角色

编辑 JNI可以这样与本地程序进行交互: 1、你可以使用JNI来实现“本地方法”(native methods),并在JAVA程序中调用它们。 2、JNI支持一个“调用接口”(invocation interface),它允许你把一个JVM嵌入到本地程序中。本地程序可以链接一个实现了JVM的本地库,然后使用“调用接口”执行JAVA语言编写的软件模块。例如,一个用C语言写的浏览器可以在一个嵌入式JVM上面执行从网上下载下来的applets。

JNI的副作用

编辑 一旦使用JNI,JAVA程序就丧失了JAVA平台的两个优点: 1、程序不再跨平台。要想跨平台,必须在不同的系统环境下重新编译本地语言部分。 2、程序不再是绝对安全的,本地代码的不当使用可能导致整个程序崩溃。一个通用规则是,你应该让本地方法集中在少数几个类当中。这样就降低了JAVA和C之间的耦合性。

什么场合下应该使用JNI

编辑 当你开始着手准备一个使用JNI的项目时,请确认是否还有替代方案。应用程序使用JNI会带来一些副作用。下面给出几个方案,可以避免使用JNI的时候,达到与本地代码进行交互的效果: 1、JAVA程序和本地程序使用TCP/IP或者IPC进行交互。 2、当用JAVA程序连接本地数据库时,使用JDBC提供的API。 3、JAVA程序可以使用分布式对象技术,如JAVAIDLAPI。 这些方案的共同点是,JAVA和C处于不同的线程,或者不同的机器上。这样,当本地程序崩溃时,不会影响到JAVA程序。 下面这些场合中,同一进程内JNI的使用无法避免: 1、程序当中用到了JAVA API不提供的特殊系统环境才会有的特征。而跨进程操作又不现实。 2、你可能想访问一些己有的本地库,但又不想付出跨进程调用时的代价,如效率,内存,数据传递方面。 3、JAVA程序当中的一部分代码对效率要求非常高,如算法计算,图形渲染等。 总之,只有当你必须在同一进程中调用本地代码时,再使用JNI。

JNI的设计目的

编辑 标准的java类库可能不支持你的程序所需的特性。或许你已经有了一个用其他语言写成的库或程序,而你希望在java程序中使用它。 你可能需要用底层语言实现一个小型的时间敏感代码,比如汇编,然后在你的java程序中调用这些功能。

[Java语言如何与其他语言进行交互]相关文章:

10.Java语言概述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值