第 7 章 本地办法栈
1、本地办法栈
微信搜一搜: 全栈小刘,获取文章全套 pdf 版
本地办法栈的特点
- Java 虚拟机栈于治理 Java 办法的调用,而 本地办法栈用于治理本地办法的调用。
- 本地办法栈,也是线程公有的。
-
容许被实现成 固定或者是可动静扩大的内存大小(在内存溢出方面和虚拟机栈雷同)
- 如果线程申请调配的栈容量超过本地办法栈容许的最大容量,Java 虚拟机将会抛出一个 stackoverflowError 异样。
- 如果本地办法栈能够动静扩大,并且在尝试扩大的时候无奈申请到足够的内存,或者在创立新的线程时没有足够的内存去创立对应的本地办法栈,那么 Java 虚拟机将会抛出一个 outofMemoryError 异样。
- 本地办法个别是应用 C 语言实现的。
- 它的具体做法是 Native Method Stack 中注销 native 办法,在 Execution Engine 执行时加载本地办法库。
注意事项
-
当某个线程调用一个本地办法时,它就进入了一个全新的并且不再受虚拟机限度的世界。它和虚拟机领有同样的权限。
- 本地办法能够通过本地办法接口来 拜访虚拟机外部的运行时数据区
- 它甚至能够间接应用 本地处理器中的寄存器
- 间接从 本地内存的堆中调配任意数量的内存
- 并不是所有的 JVM 都反对本地办法。因为 Java 虚拟机标准并没有明确要求本地办法栈的应用语言、具体实现形式、数据结构等。如果 JVM 产品不打算反对 native 办法,也能够无需实现本地办法栈。
- 在 Hotspot JVM 中,间接将本地办法栈和虚拟机栈合二为一。
你只管学习,我来负责记笔记???? 关注公众号!, 更多笔记,等你来拿,谢谢