简单理解下java关键字native

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IsITMan/article/details/81221558

java 不具备操作底层系统的内力,但可以通过JNI去调用可以操作底层系统的语言,如:C/C++。用native标记的方法表示此方法使用的本地的外部语言。需要调用本地的支持操作底层语言的函数。之所以我们很少看见native关键字是因为我们一直都在面向java开发。其实一些特殊的业务场景需要我们写底层语言脚本时,我们就会用到此关键字。看下我们常见的代码便可更好的理解。

如:调用当前线程的方法

public class Thread implements Runnable {
    public static native Thread currentThread();
}

下面摘录一段网友的解释,加深理解。

JNI

理解此关键字之前需要了解下JNI(即:Java Native Interface),我们都知道java是根据C/C++开发出的新语言,java在C/C++基础之上做了很多优化,更利于程序员使用,并快速开发程序,但语言没有完美的,其中java的运行速度要比传统的C++慢上许多之外,还有Java无法直接操作到底层操作系统,为此 Java提供了JNI来实现对于底层的访问。JNI,Java Native Interface,它是Java的SDK一部分,JNI允许Java代码使用以其他语言编写的代码和代码库,本地程序中的函数也可以调用Java层的函 数,即JNI实现了Java和本地代码间的双向交互。

Native

JDK开放给用户的源码中随处可见Native方法,被Native关键字声明的方法说明该方法不是以Java语言实现的,而是以本地语言实现的,Java可以直接拿来用。这里有一个概念,就是本地语言,本地语言这四个字,个人理解应该就是可以和操作系统直接交互的语言。

转自(https://www.cnblogs.com/szlbm/p/5504603.html

参考文章:

https://www.cnblogs.com/Alandre/p/4456719.html

https://blog.csdn.net/createchance/article/details/53783490

猜你喜欢

转载自blog.csdn.net/IsITMan/article/details/81221558