Java方法和原生方法有什么区别?
本文将帮助您了解Java方法和原生方法之间的所有区别。
函数/方法
程序模块(程序的一部分),用于在程序的不同实例中同时执行特定任务,被称为方法或函数。它可以被视为一个黑盒,能够返回输出(根据内部代码的执行获得)。同样,Java类中所有可用的方法都充当黑盒。向方法提供值(参数)后,它会处理其中可用的代码并返回输出。
使用方法的优点
它向用户隐藏低级别的内部代码细节。可以在不公开内部细节的情况下允许外部使用方法。
它根据需要重用类代码段,只需使用方法名称。
它将复杂的计算任务分解成一系列较小的方法,从而使问题解决更容易、特定于对象且模块化。
定义方法
定义方法的一般形式如下所示:
<Access specifier> <Return Type> <Method Name> (Parameter List){ Statement ______________ ______________ return (value); }
示例
public int Addition(int a, int b){ int sum = 0; sum + = a + b; return (sum); }
这里public是访问说明符,int是返回类型,Addition是方法名称,int a和int b是参数。
原生方法
原生方法是一种Java方法,它以Java以外的语言启动。这可以访问Java中直接不可用的系统特定函数和API。
使用原生方法会导致应用程序的可移植性受到限制,因为它涉及系统特定的代码。它们可以是新的代码语句,也可以是调用现有原生代码的代码语句。
运行原生方法时,需要与Java虚拟机进行互操作。这是通过Java原生接口(JNI)完成的,它以平台无关的方式促进了这种互操作性。
JNI是一组接口,允许原生方法通过多种方式与JVM互操作。例如,JNI可以包含创建对象、调用方法、获取字段、设置字段、操作数组、操作字符串和执行进程异常的接口。
原生方法的用途
如果Java编程语言不足以满足编程需求,则应使用原生方法。这是因为使用它们会导致应用程序的可移植性受到限制,因为它涉及系统特定的代码。下面是一些应该使用原生方法的情况:
访问使用Java编程语言无法访问的系统函数。
实现从原生实现中受益匪浅的性能特定方法。
创建现有API的接口,允许Java调用其他API。
创建原生方法的步骤
步骤1 - 编写Java代码并编译。
步骤2 - 创建C头文件(.h)。
步骤3 - 使用工具Java - HEdge创建C存根文件。
步骤4 - 编写C代码。
步骤5 - 创建共享代码库或DLL。
步骤6 - 运行应用程序。
Java方法和原生方法的区别
| 序号 | Java方法 | 原生方法 |
|---|---|---|
| 1 | 它专门用Java语言编写。 | 它用Java以外的语言编写,例如C。 |
| 2 | 没有单独的关键字来声明方法。 | 要声明原生方法,必须使用“native”关键字。 |
| 3 | 无法访问系统特定函数。 | 用于访问系统特定函数。 |
| 4 | 需要Java虚拟机执行。 | 需要Java原生接口执行。 |
| 5 | 不会限制应用程序的可移植性。 | 限制应用程序的可移植性。 |
| 6 | 示例 - public int getValue (int n) { } | 示例 - public native int getValue (int n); |
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP