1. 概述
本地方法:简单来讲,一个Native Method就是一个Java调用非Java代码的接口,主要用来调用C/C++代码
本地方法栈:Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用
- 本地方法栈允许被实现成固定或者是可动态扩展的内存的大小(在内存溢出方面是相同的)
- 如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个stackOverflowError异常
- 如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟将会抛出一个outOfMemoryError异常
- 它的具体做法是Native Method Stack中登记native方法,在Execution Engine执行时加载本地方法库
2. 现状
目前该方法使用的越来越少了,除非是与硬件相关的应用,比如通过Java程序驱动打印机或者Java系统管理生产设备,在企业级应用中已经比较少见