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的情况

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章