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

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