zoukankan      html  css  js  c++  java
  • JAVA基础——Native关键字

    一:native声明

    Java中native是关键字。它一般在本地声明,异地用C和C++来实现。它的声明有几点要注意:

    1)native与访问控制符前后的关系不受限制。

    2)必须在返回类型之前。

    3)它一般为非抽象类方法。

    4)native方法在异地实现,象抽象方法一样,所以没有方法体,以分号结束。如下列5种声明:

             native public void f();                         正确。

             private native void f();                        正确。

             protected int native f();                      错误,返回类型位置不对,返回类型必须在native之后。

             public abstract native void f();            native必然不是abstract的。

             native int f(){}                                     错误,因为存在方法体{}

             public static native f();                         正确。static与native方法位置随意。

    二:

    JNI是Java本机接口(Java Native Interface),是一个本机编程接口,它是Java软件开发工具箱(Java Software Development Kit,SDK)的一部分。JNI允许Java代码使用以其他语言编写的代码和代码库。Invocation API(JNI的一部分)可以用来将Java虚拟机(JVM)嵌入到本机应用程序中,从而允许程序员从本机代码内部调用Java代码。

    1.将您的所有本地方法都封装到一个类中,这个类调用单个的DLL。对每一种目标操作系统平台,都可以用特定于适当平台的版本的DLL。这样可以将本地代码的影响减少到最小,并有助于将以后所需要的移植问题考虑在内。

      2.本地方法尽量简单。尽量使您的本地方法对第三方(包括Microsoft)运行时DLL的依赖减少到最小。使您的本地方法尽量独立,以将加载您的DLL和应用程序所需的开销减少到最小。如果需要运行时DLL,必须随应用程序一起提供。

        JNI的书写步骤如下:

        a.编写带有native声明的方法的Java类

        b.使用javac命令编译编写的Java类

        c.使用java -jni ****来生成后缀名为.h的头文件

        d.使用其他语言(C、C++)实现本地方法

        e.将本地方法编写的文件生成动态链接库

  • 相关阅读:
    java算法--循环队列
    java算法--普通队列
    java算法--稀疏数组
    HelloWorld
    css
    自定义事件并且主动触发
    数组字符串操作
    进阶路上有你我-相互相持篇之ES6里箭头函数里的this指向问题
    关于一道面试题
    异步函数回调
  • 原文地址:https://www.cnblogs.com/huan-guo/p/8463132.html
Copyright © 2011-2022 走看看