java.lang.Object里的Native

java.lang.Object里的Native

今天在研究Object时看到了Native

本人是学软件的大二学生一枚,过够了普本的咸鱼大学生活。决定在沉迷打游戏无法自拔的时候悬崖勒马。
看过许多人在博客园上坚持自己,分享自己所学,,,很是敬佩!!!
在别人的博客上真的学到了许多,,,
我想唯有传扬他们的分享精神,才是对他们最大的感谢!!

回归正题java里的native
今天在看java.lang.Object时突然看见native,起初以为是一个类,后来意识到class里的方法registerNatives();后面跟了个“;”。在一个普通类里这显然不合理。那他又存在,那是为什么呢??

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

我了解到了native是一个修饰符!!

来了,灵魂三问!native是什么,干了什么,还可以干什么!

native即Java Native Interface (Java本地接口)

凡是一种语言,都希望是纯。比如解决某一个方案都喜欢就单单这个语言来写即可。Java平台有个用户和本地C代码进行互操作的API,
称为Java Native Interface (Java本地接口)。

我惊了!java还有这玩意,不行赶紧查查

发现Java中,用native关键字修饰的函数表明该方法的实现并不是在Java中完成的,而是由C/C++去完成的,并被编译成了.dll,由Java去调用。这是在哪调用呢???显然是jvm调用共享库里的东东…
也就是java和C/C++联合开发程序咯。

native干了啥呢

native是告诉了java虚拟机(jvm)我后面的这个名字是外部已经有C/C++实现啦!你准备好调用就行啦!

native还能怎么干呢

既然有native,我们自己可不可以写一个C或C++然后生成.dll,把.dll放入共享库后让java调用嘞!!!
答案当然可以!
这个可以去其他地看看,我就不说了

最后

本渣才疏学浅,如果有路过的大佬看到我有错误的地方希望得到指正。感谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值