2008年12月2日星期二

深入理解Java关键字:native

1.native是什么

native是方法修饰符。native方法是由另外一种语言(如C/C++ ,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在Java代码中,就不需要具体实现了,有点类似于接口方法,只是在类中声明了一个方法。native可以和其他一些修饰符连用,但是abstract方法和interface方法不能用native来修饰。

2.为什么需要native

一般在碰到下面几种情况时,开发者会通过JNI来编写本地方法:

  • 标准Java类库并不支持的依赖于平台的特色或者程序库;
  • 处于性能的考虑,而单纯Java方法实现达不到需求;
  • 为了调用某些现成的类库;

3.如何使用native

如何调用native方法

native方法只是在Java类中做出了声明,如何让代码能调用到具体的实现部分呢?这当然需要调用的人知道这部分实现代码放在那里。在Windows平台下,一般这样的代码会封装在dll(dynamic link library)中;在Unix系的平台中,一般会以so(shared object)的形式存在。所以在调用native方法前,需要我们调用java.system.loadLibrary()方法装载具体的native代码。

如何实现native方法

参考Java Native Interface Programming ,这里有非常完整的描述,包括一个完整的步骤,英文好的看这里。

参考:
  1. Java Native Interface Programming
  2. Java本地接口(Java Native Interface (JNI))
  3. Windows平台,如何将c编译成dll
  4. Java native Method初涉

没有评论:

 
Sign In