java native关键字

java native关键字

初识native

java.long.Object

public class Object {

    private static native void registerNatives();
    static {
        registerNatives();
    }
}

这个native究竟是什么意思呢?

native介绍

native是与C++联合开发的时候用的!java自己开发不用的!

使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,由java去调用。 这些函数的实现体在DLL中,JDK的源代码中并不包含,你应该是看不到的。对于不同的平台它们也是不同的。这也是java的底层机制,实际上java就是在不同的平台上调用不同的native方法实现对操作系统的访问的。

native 是用做java 和其他语言(如c++)进行协作时用的 也就是native 后的函数的实现不是用java写的

native的意思就是通知操作系统, 这个函数你必须给我实现,因为我要使用。 所以native关键字的函数都是操作系统实现的, java只能调用。

java是跨平台的语言,既然是跨了平台,所付出的代价就是牺牲一些对底层的控制,而java要实现对底层的控制,就需要一些其他语言的帮助,这个就是native的作用了j

Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。   可以将native方法比作Java程序同C程序的接口,其实现步骤:   1、在Java中声明native()方法,然后编译;   2、用javah产生一个.h文件;   3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);   4、将第三步的.cpp文件编译成动态链接库文件;   5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • hadoop压缩机制

    优点:压缩率比较高,而且压缩/解压速度也比较快;hadoop本身支持,在应用中处理gzip格式的文件就和直接处理文本一样;有hadoop native库;大部分...

    许喜朝
  • java和node.js使用md5算法实现对数据的加密与加盐操作

    密码在数据库当中是如何存储的?明文还是密文? 很显然做为一家负责人的公司密码应该采用密文在数据库中存储 这样做即使数据库被攻破密码采用了加密也不会得到泄露

    许喜朝
  • spark scala练习

    许喜朝
  • Java关键字——native

      本篇博客我们将介绍Java中的一个关键字——native。   native 关键字在 JDK 源码中很多类中都有,在 Object.java类中,其 ge...

    IT可乐
  • 从CPU爆表问题排查谈Java性能监测之道

    记一次Java线上服务器CPU过载问题的排查过程,详解排查过程中用到的Java性能监测工具:jvisualvm、jstack、jstat、jmap。

    净地
  • Confluence(wiki)如何扩展内存

    Confluence 有一天晚上突然就不能访问了,前端页面提示502 。然后抓紧重启服务,一切恢复正常。第二天开始查看日志记录,翻看logs/catalina....

    BigYoung小站
  • Java基础学习笔记一Java介绍

    Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件的。

    緣來
  • 一线互联网技术推荐:Java工程师架构知识系统化汇总,面完45K!

    根据高端招聘平台100 offer发布的Java人才盘点报告,在过去的2018年,Java仍然是最流行、招聘供需量最大的技术语言。

    Java知音
  • 微服务:Java EE的拯救者还是掘墓人?

    美的让人心动
  • react-native学习之环境安装

    1、首先是java环境安装-安装JDK 2、安装Android-SDK,推荐以下地址:http://tools.android-studio.org/index...

    用户1141560

扫码关注云+社区

领取腾讯云代金券