1 什么是本地方法:
简单来讲,一个 Native Method 就是一个 java 调用非 java 代码的接口,一个 Native Method 是这样一个 java 方法:该方法的底层实现由非 Java 语言实现, 比如 C。这个特征并非 java 特有,很多其他的编程语言都有这一机制 在定义一个 native method 时,并不提供实现体(有些像定义一个 Java interface),因为其实现体是由非 java 语言在外面实现的。
关键字 native 可以与其他所有的 java 标识符连用,但是 abstract 除外。
(总结:一个 Native Method 就是一个 java 调用非 java 代码的接口,该方法由非java语言实验,例如C,C++)
2 为什么要使用 Native Method:
Java 使用起来非常方便,然而有些层次的任务用java实现起来不容易,或者我们对程序的效率很在意时,问题就来了。
1.与 java 环境外交互:
有时 java 应用需要与 java 外面的环境交互,这是本地方法存在的主要原因。 你可以想想 java 需要与一些底层系统,如某些硬件交换信息时的情况。本地方法正式这样的一种交流机制:它为我们提供了一个非常简洁的接口,而且我们无需 去了解 java 应用之外的繁琐细节。
2.Sun’s Java :
Sun 的解释器是用 C 实现的,这使得它能像一些普通的 C 一样与外部交互。jre 大部分是用 java 实现的,它也通过一些本地方法与外界交互。例如:类 java.lang.Thread 的 setPriority()方法是用 Java 实现的,但是它实现调用的事 该类里的本地方法 setPriority0().
(总结:
我们的java程序需要与外部(计算机硬件)进行数据交互(例如hashCode(), read(),thread.start())可以直接调用外部的本地方法实现.
JVM解释器是用C写的,可以更好的与本地方法交互.
)