JNI学习篇 -- 简介

一、用到JNI的情况

    △在java程序中复用以前写过的c/c++代码
    △ 实现自己的java虚拟机
    △学习不同语言如何进行协作,尤其是如何实现垃圾回收和多线程
    △ 把一个虚拟机实现整合到用c/c++写的程序中

二、平台和系统环境

    系统环境指本地操作系统环境。本地程序使用c/c++来编写,被编译成只能在本地系统环境下运行的二进制代码,并和本地库连接在一起。

三、JNI扮演的角色

    作为虚拟机实现的一部分,允许JAVA和本地代码双向交互
1.1 、JNI的副作用:
    △一旦使用就失去了跨平台的特性

        △本地代码的不当可能导致整个程序的崩溃

       通用规则:让本地方法集中在少数的几个类中,从而降低JAVA和C之间的耦合性

1.2、避免使用JNI的方案

        △使用TCP/IP或者IPC使JAVA和本地程序进行交互

        △用JAVA连接本地数据库时,使用JDBC提供的API

        △JAVA程序可以使用分布式对象技术,如JAVA IDL API  (⊙_⊙)?

        共同点:JAVA和C处于不同的线程或者机器上,本地程序的崩溃不会影响到JAVA程序

1.3、需要使用JNI的情况
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值