国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

JAVA調(diào)用CPP

2019-11-17 04:01:26
字體:
供稿:網(wǎng)友
2009-11-23

支持常見的數(shù)據(jù)類型的映射               java 類型                       C 類型                           原生表現(xiàn)

String                                         char*                             /0結(jié)束的數(shù)組                (native encoding or jna.encoding)

WString                                     wchar_t*                       /0結(jié)束的數(shù)組                (unicode)

String[]                                       char**                          /0結(jié)束的數(shù)組                的數(shù)組

WString[]                                  wchar_t**                     /0結(jié)束的寬字符數(shù)組的        數(shù)組

Structure                                    struct*                            struct                     指向結(jié)構(gòu)體的指針 (參數(shù)或返回值) (或者明確指定是結(jié)構(gòu)體指針)
結(jié)構(gòu)體(結(jié)構(gòu)體的成員) (或者明確指定是結(jié)構(gòu)體)

Union                                       union                                  等同于結(jié)構(gòu)體

Structure[]                               struct[]                              結(jié)構(gòu)體的數(shù)組,鄰接內(nèi)存

Callback                                   <T> (*fp)()                       Java函數(shù)指針或原生函數(shù)指針

NativeMapped                         varies                                  依賴于定義

NativeLong                              long                                     平臺依賴(32或64位整數(shù))

PointerType                             pointer                              和 Pointer相同

盡量使用基本、簡單的數(shù)據(jù)類型;

盡量少跨平臺、跨語言傳遞數(shù)據(jù)!

如果有復(fù)雜的數(shù)據(jù)類型需要在Java和原生函數(shù)中傳遞,那么我們就必須在Java中模擬大量復(fù)雜的原生類型。這將大大增加實(shí)現(xiàn)的難度,甚至無法實(shí)現(xiàn)。

如果在Java和原生函數(shù)間存在大量的數(shù)據(jù)傳遞,那么一方面,性能會(huì)有很大的損失。更為重要的是,Java調(diào)用原生函數(shù)時(shí),會(huì)把數(shù)據(jù)固定在內(nèi)存中,這樣原生函數(shù)才可以訪問這些Java數(shù)據(jù)。這些數(shù)據(jù),JVM的GC不能管理,會(huì)造成內(nèi)存碎片。

如果在你需要調(diào)用的動(dòng)態(tài)鏈接庫中,有復(fù)雜的數(shù)據(jù)類型和龐大的跨平臺數(shù)據(jù)傳遞。那么你應(yīng)該另外寫一些原生函數(shù),把需要傳遞的數(shù)據(jù)類型簡化,把需要傳遞的數(shù)據(jù)量簡化。

模擬結(jié)構(gòu)體
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 全椒县| 珠海市| 枣阳市| 岳阳县| 白玉县| 那坡县| 长白| 新营市| 寿宁县| 泾阳县| 石楼县| 会同县| 乐平市| 滕州市| 海伦市| 天津市| 麻江县| 安图县| 上林县| 田东县| 千阳县| 金乡县| 黔西县| 泰来县| 潍坊市| 郑州市| 安乡县| 平阴县| 远安县| 芦山县| 永新县| 广丰县| 福安市| 常州市| 吐鲁番市| 馆陶县| 长汀县| 乌拉特中旗| 万年县| 瑞安市| 昌乐县|