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