第一次注意到native是在java.lang.Float源码中的一个intBitsToFloat方法:
public static native float intBitsToFloat(int bits);
这个方法的作用是将数据转成IEEE754单精度浮点型。这个方法是怎么实现的呢?native在这里是干嘛的呢?引起了我的探索欲。从网上找了一些材料,做一下记录。
认识native
声明native的方法:
- native用在类的method前面,表示这个method不是用java实现的。
- 使用native关键字说明这个方法是原生函数,也就是这个方法使用C/C++语言实现的,并且被编译成了dll,由java来调用。
- native的意思就是通知操作系统,让操作系统来实现这个方法,而Java只能调用操作系统实现的这个函数。
- java要实现对底层的控制,就需要使用native来调用其他语言(C/C++)的方法来实现。
了解一下JNI
JNI(Java Native Interface):Java本地接口,它允许Java代码和其他语言写的代码进行交互,JNI一开始是为了本地已编译语言,尤其是C和C++设计的。
使用Java与本地已编译代码交互,通常会丧失平台可移植性。但是有些情况下这样做事可以接受的,甚至是必须的。
想了解更多关于Native的介绍请参考下面的链接
参考文档:
https://www.cnblogs.com/KingIceMou/p/7239668.html
https://www.jb51.net/article/79348.htm