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 ,这里有非常完整的描述,包括一个完整的步骤,英文好的看这里。
参考:
没有评论:
发表评论