国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 黔江区| 金阳县| 富川| 定结县| 临汾市| 天全县| 信宜市| 左云县| 行唐县| 盐亭县| 旬阳县| 论坛| 奉化市| 绍兴市| 沁水县| 房山区| 神池县| 广丰县| 济阳县| 南江县| 大方县| 土默特右旗| 西乌| 小金县| 永昌县| 新闻| 信丰县| 通海县| 巴里| 垦利县| 崇义县| 高淳县| 芷江| 新邵县| 常州市| 隆尧县| 定州市| 西丰县| 张家界市| 汽车| 泾川县|