热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JVM(六)内存与垃圾回收(二)运行时数据区(三)本地方法栈

本文章对应书中2.2.3节内容。

本地方法:

在讲本地方法栈之前我们先说一下本地方法:
JVM(六) -- 内存与垃圾回收(二) -- 运行时数据区(三) -- 本地方法栈
用native修饰的都是本地方法,如Object的getClass方法。
JVM(六) -- 内存与垃圾回收(二) -- 运行时数据区(三) -- 本地方法栈
JVM(六) -- 内存与垃圾回收(二) -- 运行时数据区(三) -- 本地方法栈
JVM(六) -- 内存与垃圾回收(二) -- 运行时数据区(三) -- 本地方法栈
JVM(六) -- 内存与垃圾回收(二) -- 运行时数据区(三) -- 本地方法栈

本地方法栈

  • Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用
  • 本地方法栈,也是线程私有的
  • 允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的)
    • 如果西安城请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个***Error异常
    • 如果本地方法栈可以动态扩展,并且尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机会抛出一个OutOfMemoryError异常。
  • 本地方法栈是使用C语言实现的
  • 它的具体做法是Native Method Stack中登记native方法,在Execution Engine执行时加载本地方法库。

JVM(六) -- 内存与垃圾回收(二) -- 运行时数据区(三) -- 本地方法栈
JVM(六) -- 内存与垃圾回收(二) -- 运行时数据区(三) -- 本地方法栈


推荐阅读
author-avatar
刘自龙Sophisten
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有