简单理解下java关键字native

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.youkuaiyun.com/createchance/article/details/53783490

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值