JVM08 - 本地方法接口

目录

1.什么是本地方法

2.为什么要使用本地方法

     2.1 与Java环境交互

     2.2 与操作系统交互

3.本地方法现状


1.什么是本地方法

       简单地讲,一个Native Method是一个非Java语言实现的方法,比如C或C++。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,可以用extern告知C++编译器去调用C的函数。本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C++程序。

Demo:Thread类中的start0方法

注:标识符native可以与其它java标识符连用,abstract除外(因为被abstract为抽象方法,但本地方法是需要其他语言实现的,故互相矛盾):

public class NativeTest {
    public native void nativeOne(int x);
    public native static long nativeTwo();
    private native synchronized float nativeThree(Object o);
    native void nativeFour(int[] ary) throws Exception;
}

2.为什么要使用本地方法

     2.1 与Java环境交互

      有时Java应用需要与Java外面的硬件环境交互,这是本地方法存在的主要原因。本地方法正是这样一种交流机制:它为我们提供了一个非常简洁的接口,而且我们无需去了解Java应用之外的繁琐的细节。

     2.2 与操作系统交互

      JVM支持着Java语言本身和运行时库,它是Java程序赖以生存的平台,它由一个解释器(解释字节码)和一些连接到本地代码的库组成。然而不管怎样,它毕竟不是一个完整的系统,它经常依赖于一底层系统的支持。这些底层系统常常是强大的操作系统。通过使用本地方法,我们得以用Java实现了jre与底层系统的交互。

3.本地方法现状

       目前该方法使用的越来越少了,除非是与硬件有关的应用,比如通过Java程序驱动打印机或者Java系统管理生产设备,在企业级应用中已经比较少见。因为现在的异构领域间的通信很发达,比如可以使用Socket通信,也可以使用Web Service等等。

猜你喜欢

转载自blog.csdn.net/qq_36756682/article/details/112561535