JVM---运行时数据区-本地方法栈
/** * 【运行时数据区-本地方法栈】 * <本地方法接口> * why * 有些层次用Java实现起来不容易(或对程序的效率很在意); * 与Java外环境交互: * 有时候Java应用需要与Java外的环境交互; * eg:与OS、硬件... * JVM依赖于底层系统的支持: * eg:OS... * what * native方法; * Java调用非Java的接口; * 由非Java语言实现,比如C; * 很多其他的编程语言也有这个机制,比如C++中,使用extern C 告知C++编译器 去调用一个C的函数; * 目的 * 融合不同的编程语言为Java所用,初衷是融合C/C++程序; * 声明 * 除abstract外,其他标识符都可一起使用; * * <本地方法栈> * what * 管理native方法的调用; * 线程私有; * * 本地方法栈内存大小 * 固定大小 * 若申请的容量大于固定容量,抛出StackOverflowError; * 动态扩展 * 若无法申请足够的内存,抛出OutOfMemoryError; * * 当某个线程调用一个native方法时,将进入一个全新的且不受JVM限制的世界; * * 并不是所有的JVM都支持本地方法; * */