JVM内存与垃圾回收篇第7章本地方法栈
2023-06-13 09:11:19 时间
第 7 章 本地方法栈
1、本地方法栈
本地方法栈的特点
- Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。
- 本地方法栈,也是线程私有的。
- 允许被实现成固定或者是可动态扩展的内存大小(在内存溢出方面和虚拟机栈相同)
- 如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个stackoverflowError 异常。
- 如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个outofMemoryError异常。
- 本地方法一般是使用C语言实现的。
- 它的具体做法是Native Method Stack中登记native方法,在Execution Engine 执行时加载本地方法库。
注意事项
- 当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。它和虚拟机拥有同样的权限。
- 本地方法可以通过本地方法接口来访问虚拟机内部的运行时数据区
- 它甚至可以直接使用本地处理器中的寄存器
- 直接从本地内存的堆中分配任意数量的内存
- 并不是所有的JVM都支持本地方法。因为Java虚拟机规范并没有明确要求本地方法栈的使用语言、具体实现方式、数据结构等。如果JVM产品不打算支持native方法,也可以无需实现本地方法栈。
- 在Hotspot JVM中,直接将本地方法栈和虚拟机栈合二为一。
相关文章
- JVM内存与垃圾回收篇第3章运行时数据区概述及线程
- JVM 内存结构基于JDK1.8【JVM篇三】
- JVM内存优化分享
- JVM之内存模型与线程
- jvm jstat_预处理命令是什么意思
- Java虚拟机(JVM)-- Dump内存快照
- jvm之虚拟机工具篇(三)
- JVM史上最最最完整深入解析
- JVM 面试深入理解内存模型和垃圾回收(二)
- 深入点理解JVM-JVM内存模型
- JVM 类加载过程详解 及初始化顺序代码验证 彻底搞定面试官
- JVM内存调优工具篇之java自带工具
- 获得JVM的总内存,最大内存,以及空闲内存详解编程语言
- java的jvm虚拟机之直接内存的影响问题讲解详解编程语言
- Jvm介绍详解编程语言
- Linux查看JVM内存使用情况指南(linux查看jvm内存)
- JVM监控在Linux系统上的应用(jvm监控 linux)
- Oracle JVM组件值得信赖的可靠性(oracle jvm组件)
- 解析Linux系统中JVM内存2GB上限的详解