什么是本地方法
native method就是一个java接口调用非java代码的接口, 一个native方法是由非java语言实现,在定义native时,可以不用实现体,因为具体实现是在外部实现的。
native可以与其他java标识符连用,但abstract除外
package com.lydon.test;
public class IHaveNatives {
public native void Native1();
private native void Native2();
native static public long Native3();
native void Native4() throws Exception;
}
为什么要使用native
主要有几方面的原因:
- 需要与java外的环境进行交互:例如操作系统或者某些硬件交互信息。
- 与操作系统交互:jvm需要依赖于具体的操作系统,而它们往往是c或者c++,汇编等较为底层的语言编写的,通过使用本地方法,我们可以用java实现了jre与底层系统交互,甚至jvm有些部分就是用c写的。另外如果有需要用一些java语言没有封装的操作系统的特性,也需要用到本地方法
- sun的解释器是用c实现的,所以java不可避免的会跟c打交道
现状
除非是跟硬件有关的应用,否则一般我们开发中不会用到native。