java native interface (JNI) 允许java 应用程序调用本地方法
- 本地方法即:本地程序设计语言编写的特殊方法(比如C 或C++ 代码),并返回到java设计语言
本地方法主要提供三种用途:
- 访问“特定于平台的能力”的机制,比如 注册表、文件锁
- 访问遗留代码库的能力,可以访问遗留数据
- 可以通过本地语言编写注重性能的代码,提升系统性能
使用本地方法提升性能的做法不值得提倡
- 1.3版本以前是可以的,随着jvm 速度越来越快,这么做其实并不是很划算
使用本地方法有一些严重缺陷
- 本地语言不是安全的,本地方法不能免受内存损坏错误的影响
- 本地方法是平台相关的,不方便移植
- 更难调试
- 进入退出本地方法需要相关的固定开销(本地代码做少量工作,性能会降低)
- 胶合本地代码的程序单调乏味,难以理解
尽可能少使用本地方法,注意全面测试,本地方法的bug 可能破坏整个系统