转载自:http://blog.sina.com.cn/s/blog_5b9b4abe01016zw0.html
JAVA中有两种方法:JAVA方法和本地方法
JAVA方法是由JAVA编写的,编译成字节码,存储在class文件中
本地方法是由其它语言编写的,编译成和处理器相关的机器代码
本地方法保存在动态链接库中,即.dll(windows系统)文件中,格式是各个平台专有的
JAVA方法是与平台无关的,但是本地方法不是
运行中的JAVA方法调用本地方法时,虚拟机装载包含这个本地方法的动态库的,并调用这个方法
通过本地方法,JAVA程序可以直接访问底层操作系统的资源,如果你这样用,你的程序就变成平台相关了,因为本地方法的动态库是与平台相关的,此外使用本地方法还可能把程序变得和特定的JAVA平台实现相关
一个本地方法接口——JAVA本地接口JNI——使得本地方法可以在特定主机系统的任何一个JAVA平台实现上运行
JAVA给人们提供了选择的机会
如果希望使用特定主机上的资源,它们又无法从JAVA API访问,那么可以写一个平台相关的JAVA程序来调用本地方法
如果希望保证程序的平台无关性,那么只能通过JAVA API来访问底层系统资源