温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java中Native关键字怎么用

发布时间:2021-12-27 14:41:14 来源:亿速云 阅读:222 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关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文件和遗留文件之间有一个变量/数据流链接,以便两者之间有一个平滑的数据流。

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

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

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

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

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

  • 5. 运行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关键字怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI