本地方法
有时候,我们希望使用特定的,c、c++这类第三方库。Java提供了native关键字,用于声明本地代码方法,一旦方法使用native进行声明,就可以从Java程序内部调用这些方法,就像调用其他Java方法用于。
在声明了本地方法之后,必须编写本地方法,并且需要遵循复杂的步骤序列,将本地方法和Java代码链接起来。
大多数本地代码都是使用C语言编写的,将C代码集成到Java程序中的机制称为Java本地接口(Java Native Interface,JNI)。
本地方法存在的问题
潜在的安全性风险
因为本地方法执行实际的机器代码,所有可以访问宿主系统的所有部分,也就是说,本地代码可以离开Java执行环境。例如,这有可能导致感染病毒。为此,未签名的applet不能使用本地代码。此外,DLL加载是受限的,它们的加载要得到安全管理器的批准。可移植性的丢失
本地代码因为包含在DLL中,所以必须执行在执行Java程序的机器上。而且,因为本地方法依赖于CPU和操作系统,所以DLL本身是不可移植的。因此,使用本地方法的Java程序只能运行于已经安装了兼容DLL的机器上。