本文介绍本地方法接口以及本地方法调用。
1. 概述
JVM主要分成类加载子系统、运行时数据区、执行引擎、本地方法接口(本地方法调用)四部分。本文介绍本地方法接口。既然是本地方法调用、本地方法接口,那么什么是本地方法呢?
简单地讲,一个Native Method就是一个Java调用非Java代码的接口。一个Native Method方法的实现由非Java语言实现,比如C语言。这个特征并非Java所特有,很多其他的编程语言都有这一机制,比如在C++中,可以用extern “C”告诉C++编译器去调用一个C的函数。
在定义这个native method时,并不提供实现体(有点像Java中的接口),因为其实现体是由非Java语言在外面实现的。
本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C++程序。
native关键字可以与任何关键字一起修饰任何方法,修饰之后表明本方法是本地方法,但是不能和abstract同时出现。
2. 作用
为什么要使用Native Method?
Java使用起来非常方便,然而有些层次的任务用Java实现起来不容易,或者我们对程序的效率很在意时,问题就来了。
Native Method的出现主要有以下三个目的:
与Java环境外交互:
有时Java应用需要与Java外面的环境交互,比如其他语言编写的程序,这是本地方法存在的主要原因。
与操作系统交互
通过使用本地方法,得以用Java实现了JRE与底层操作系统的交互甚至JVM的一部分就是用C写的。
Sun’s Java
Sun的解释器是用C实现的,这使得它能像一些普通的C一样与外部交互。
不过目前该方法使用的越来越少了,除非是与硬件相关的应用。而且现在Java已经越来越完善,效率已经变得很高了。
3. 备注
参考B站《尚硅谷》。