本地方法栈
- 本地方法栈与虚拟机栈所发挥的作用是非常相似的,区别就是虚拟机栈执行Java方法,本地方法栈为本地(Native)方法服务。
native方法是Java通过JNI(java native interface)直接调用本地C/C++库,这个就相当于C/C++暴露给Java的一个接口,Java 通过调用这个接口从而调用到 C/C++ 方法。
- 本地方法栈线程私有的。
- 本地方法栈也会在栈深度溢出或者栈扩展失败时分别抛出StackOverflowError和OutOfMemoryError异常。
- 它的具体做法就是本地方法栈登记native方法,在执行引擎执行时候加载本地方法库。
当调用的是 native 方法时,虚拟机会保持 Java 虚拟机栈不变,也不会向 Java 虚拟机栈中压入新的栈帧,虚拟机只是简单地动态连接并直接调用指定的 native 方法
- Hotspot虚拟机中,直接将本地方法栈和虚拟机栈合二为一。



