java native interface (JNI) 容許java 應用程序調用本地方法java
- 本地方法即:本地程序設計語言編寫的特殊方法(好比C 或C++ 代碼),並返回到java設計語言
本地方法主要提供三種用途:安全
- 訪問「特定於平臺的能力」的機制,好比 註冊表、文件鎖
- 訪問遺留代碼庫的能力,能夠訪問遺留數據
- 能夠經過本地語言編寫注重性能的代碼,提高系統性能
使用本地方法提高性能的作法不值得提倡jvm
- 1.3版本之前是能夠的,隨着jvm 速度愈來愈快,這麼作其實並非很划算
使用本地方法有一些嚴重缺陷性能
- 本地語言不是安全的,本地方法不能免受內存損壞錯誤的影響
- 本地方法是平臺相關的,不方便移植
- 更難調試
- 進入退出本地方法須要相關的固定開銷(本地代碼作少許工做,性能會下降)
- 膠合本地代碼的程序單調乏味,難以理解
儘量少使用本地方法,注意全面測試,本地方法的bug 可能破壞整個系統測試