在Java源码中我们可以看到有些类并不是具体的抽象类或接口,但却可以存在未实现的方法,如Thread中:
我们都知道Thread线程是一个class,理论上是不能存在未实现的方法的。那么native究竟是干什么的起到了什么作用呢?
native说明:
- 凡是带了native,说明java的作用范围达不到了,需要回去调用底层c语言的库
- native主要是调用了偏向底层c语言或c++的库,偏向硬件类的
- 在使用java驱动程序可以使用,如打印机,管理系统等
- jvm中存在一个本地方法接口,调用native主要是调用了本地方法接口中的本地方法库
jvm部分内存图:
说明:
当使用了native关键字时该方法会去调用本地方法接口的本地方法库(JNI),JNI的作用是扩展了java程序的使用。融合了其他编程语言。native在最终执行的时候会加载本地方法库中的方法。