我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java中Native关键字怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java中Native关键字怎么用

这篇文章将为大家详细讲解有关Java中Native关键字怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、Java中Native关键字的语法

本机代码的语法与普通函数定义相同,在函数开头添加了“native”关键字。

例如:

Public class testing{public native String testMethod (String parameter);}

在这里,public是一个访问修饰符。它应该是公共的,以便其他文件可以使用它。字符串是函数的返回数据类型。它可以是整数、字符或布尔值,具体取决于关键字。传递给此函数的参数也是数据类型字符串。一切都应该保持在社会底层。

在函数声明之后,我们通过创建对象和加载库来调用这个函数。

public static void main(String[] args){System.loadLibrary("testing");testing testingnew = new testing();String  output   = testingnew.stringMethod("NATIVE");}

应首先加载上面定义的库,并创建对象。在这个对象的帮助下,本机函数被调用。

二、Native关键字是如何工作的?

应该有两个文件。一个包含JAVA代码,而另一个应该包含C/C++遗留代码。Java代码将用于调用遗留代码。此遗留代码将与硬件交互并返回预期输出。

当遗留代码与硬件交互时,它将不会遵循JAVA制定的准则。此代码将执行所需的处理,以获得输出并将结果传递给JNI。Java本机接口随后将检入其目录,其中包含与本机代码相关的所有规则(这在SDK中位于名为javah.exe的文件下)。JNI是作为Java工具包的一部分设计的。在此处理之后,JAVA将以JAVA语言本身发布输出。当我们创建JAVA程序时,我们必须确保JAVA文件和遗留文件之间有一个变量/数据流链接,以便两者之间有一个平滑的数据流。

下面给出了解释如何使用本机关键字的步骤:

  • 编写包含本机方法、已加载的共享库的JAVA代码,并使用“filename.JAVA”保存它。

  • 编译JAVA代码并将代码转换为字节码。

  • 创建包含应调用的本机函数签名的C/C++头文件。

  • 编写C/C++代码有一个本机方法的实现。

  • 运行JAVA可执行文件以查看结果。

三、代码示例

我们在Eclipse中编写代码并运行代码来创建一个库,然后使用该库来实现C代码。

代码:

public class JPP {public static native void pAccess();public static native int pRead();public static native void pWrite(int port, int output);static{System.loadLibrary("JPPlibs");}public void jAccess(){JPP.pAccess();}public int jRead(){return JPP.pRead();}public void jWrite(int port, int output){JPP.pWrite(port, output);}}

在将此代码保存到java项目的新“类”中之后,我们必须设置一个运行环境来生成头文件。

Java中Native关键字怎么用

当我们运行这个程序时,应该生成一个库。

输出:

这里我们从java代码创建了头文件,它将本地代码和java语言链接起来。

Java中Native关键字怎么用

四、Java中Native关键字的优势

下面给出了一些优点:

  • 它为JAVA提供了一个额外的优势,可以与用其他语言编写的代码交互,并减少用JAVA编写相同代码的工作量,从而减少代码冗余。

  • 它提高了总体代码性能。由于代码是用其他语言编写的,因此使用机器语言时可能比使用JAVA更快。然后我们可以使用JAVA程序调用此代码。

  • 使用这种方法,我们可以直接进行系统调用。降低外部干扰的概率,提高代码执行速度。

  • 您可以使用用JAVA编写的任意驱动代码动态调用预加载的库(用JAVA以外的任何语言编写),仍然可以用JAVA获得响应。

  • 它使JAVA能够访问硬件资源,而这些硬件资源只能由其他语言使用。

  • 如果您已经为应用程序构建了一个依赖于平台的代码,并且其功能不受JAVA支持,那么我们可以使用本机代码,并通过native关键字将本机代码链接到JAVA。

五、规则

native关键字的规则如下所示:

native关键字将在方法名称之前使用。

  • native方法声明没有正文,应该以分号结尾,因为这些方法不是在JAVA中定义的,而是在C/C++语言中出现的。

  • native方法不能声明为抽象方法。

  • 由于无法保证以前的旧代码是否按照IEEE 754标准编写(IEEE浮点算法标准是1985年由电气和电子工程师协会制定的浮点算法技术标准),因此我们不能将这些原生方法声明为严格FTP。

  • JAVA设计JAVA本机native接口(JNI)规范来定义实现本机方法的规则和声明,如JAVA和native代码之间的数据类型转换。

关于“Java中Native关键字怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java中Native关键字怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java中Native关键字怎么用

这篇文章将为大家详细讲解有关Java中Native关键字怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Java中Native关键字的语法本机代码的语法与普通函数定义相同,在函数开头添加了“nat
2023-06-22

Java关键字native怎么用

这篇文章主要介绍“Java关键字native怎么用”,在日常操作中,相信很多人在Java关键字native怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java关键字native怎么用”的疑惑有所帮助!
2023-06-26

JAVA中native方法与synchronized 关键字

native , synchronized [@more@]JAVA中native方法 @与羊共舞的狼 Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件
2023-06-03

Java中super关键字怎么用

本篇内容介绍了“Java中super关键字怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!super有什么用?(1)当子类中构造方法第一
2023-06-29

Java中的static关键字怎么用

本文小编为大家详细介绍“Java中的static关键字怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中的static关键字怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一.static关键字
2023-06-29

Java中transient关键字怎么使用

本篇内容主要讲解“Java中transient关键字怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中transient关键字怎么使用”吧!一、概要介绍 对于transient
2023-07-06

java中this关键字怎么使用

这篇文章主要介绍了java中this关键字怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中this关键字怎么使用文章都会有所收获,下面我们一起来看看吧。this 的使用:修饰属性和方法,也可以理
2023-06-26

Java中 transient关键字怎么使用

本篇文章为大家展示了Java中 transient关键字怎么使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizabl
2023-06-19

java中abstract关键字怎么使用

在Java中,abstract关键字主要用于定义抽象类和抽象方法。1. 抽象类的定义:使用abstract关键字修饰类,将其声明为抽象类。抽象类不能被实例化,只能被继承。抽象类可以包含普通方法和抽象方法。示例代码:```javaabstra
2023-09-23

Java中的synchronized关键字怎么用

小编给大家分享一下Java中的synchronized关键字怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、synchronized锁的底层实现原理JVM基于进入和退出Monitor对象来实现方法同步和代码块同步。
2023-06-25

Java中super关键字怎么使用

这篇文章主要讲解了“Java中super关键字怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中super关键字怎么使用”吧!supersuper是一个关键字,全部小写。sup
2023-07-02

java中的final关键字怎么使用

在Java中,final关键字可以用于修饰类、方法和变量。1. final修饰类:final修饰的类是不可被继承的,即该类不能有子类。例如:```javafinal class MyClass {// 类的内容}```2. final修饰方
2023-08-24

java中的super关键字怎么使用

在Java中,super是一个关键字,用于引用父类的成员变量、成员方法和构造方法。1. 引用父类的成员变量:可以使用super关键字来引用父类中的成员变量。例如,如果父类中有一个成员变量名为num,可以使用super.num来引用父类中的n
2023-08-08

java中的volatile关键字怎么使用

本篇内容介绍了“java中的volatile关键字怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.volatile实现可见性的原理
2023-06-25

Java super关键字怎么使用

本文小编为大家详细介绍“Java super关键字怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java super关键字怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.super介绍我们可以
2023-07-02

java final关键字怎么使用

这篇文章主要介绍“java final关键字怎么使用”,在日常操作中,相信很多人在java final关键字怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java final关键字怎么使用”的疑惑有所
2023-07-04

java instance关键字怎么使用

在Java中,关键字"instance"用于判断一个对象是否属于特定的类或其子类的实例。它用于实现类型检查和类型转换。以下是"instance"关键字的使用方法:1. 用于判断对象是否是特定类的实例:语法:对象 instanceof 类名示
2023-10-20

Python中nonlocal关键字与global关键字怎么用

小编给大家分享一下Python中nonlocal关键字与global关键字怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python引用变量的顺序: 当前作
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录