JVM(五)本地方法接口和本地方法栈
1 本地方法
-
一个
Native Method
就是一个Java调用非Java代码的接口。 -
在定义本地方法的时候,不提供实现体
-
标识符
native
能够和除了abstract
的java标识符连用public class NativeTest{ public native void method1() throw Exception; ... }
-
作用是融合不同的语言为Java所用
2 本地方法栈
- Java虚拟机栈用于管理Java方法,本地方法栈用于管理本地方法
- 本地方法栈是线程私有的
- 可以被设计成固定或者是可扩展内存大小的(在内存溢出方面和虚拟机栈是一样的)
- 虚拟机栈栈帧在执行过程中如果需要调用本地方法,则由本地方法栈将方法压入登记本地方法,然后执行引擎利用
动态链接
的方式调用加载本地方法库
中的方法 - 当某个线程调用本地方法的时候,就不受虚拟机控制了
- 并不是所有的JVM都支持本地方法;在HotSpot JVM中直接将本地方法栈和虚拟机栈合二为一了