位置图解

本地方法栈在运行时数据区中,三个灰色的部分是线程私有的。

本地方法栈作用

Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。

本地方法栈是线程私有了,允许被线程固定或者是可动态扩展的内存大小

本地方法栈和虚拟机栈在内存溢出方面是相同的

  • 如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个StackOverflowError异常。
  • 如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个OutOfMemoryError异常。

本地方法使用C语言实现的

它的具体做法是Native Method Stack中登记native方法,在Execution Engine执行时加载本地方法库。

本地方法栈通常和本地方法接口打交道进而和本地方法库打交道,比如线程启动的时候,会把一个Start0压入本地方法栈。例如:在调用start()方法的时候,在java虚拟机栈中把start()方法作为栈针压入虚拟机栈中,在此过程中如果需要调用本地方法,则把start0()作为栈针压入本地方法栈,然后通过动态链接的方式,链接到c语言的库。

好了本地方法栈就到此结束了,小伙伴们,记得三连哦~

欧尼酱讲JVM(13)——本地方法栈相关推荐

  1. 欧尼酱讲JVM(12)——本地方法接口

    位置图解 图中虚线框起来的就是本地方法接口 什么是本地方法 简单地讲,一个Native Method就是一个Java调用非Java代码的接口,一个Native Method是这样一个Java方法:该方 ...

  2. 欧尼酱讲JVM(01)——整体概览(导航)

    从业这么久了,输入了很多东西,趁我还算不老,趁我还有精力,我觉得把我的知识和经验整理一番,输出出来. 那么首先就从JVM开始吧.我将从以下几个方面讲解JVM: 欧尼酱讲JVM(02)--类的加载过程 ...

  3. 欧尼酱讲JVM(17)——方法区详解有图有真相

    目录 位置图解 方法区的理解 方法区在哪里 方法区的基本理解 HotSpot中方法区的理解(演进过程) 方法区的内部结构 图解方法区内部结构 运行时常量池 class文件中常量池的理解 为什么需要常量 ...

  4. java的标量和聚合量_欧尼酱讲JVM(16)——如何基于逃逸分析进行代码优化

    代码优化是一个涉及面很广的"工程",但是今天呢,本姑娘主要给大家分享基于逃逸分析,如何给代码做优化.那么逃逸分析是什么呢?我前面的文章也仔细的讲解过了,这里就不过多的赘述了.有不明 ...

  5. JVM之本地方法栈Naitve Method Stack

    JVM之本地方法栈Naitve Method Stack 目录: JVM体系结构概览 JVM之本地方法栈解析 1. JVM体系结构概览 2. JVM之本地方法栈解析 本地接口的作用是融合不同的编程语言 ...

  6. 欧尼酱讲JVM(22)——分代收集算法

    目录 分代收集算法 HotSpot中的分代收集 年轻代 老年代 没有一种最好的算法吗?没有,没有最好只有最适合.具体问题具体分析! 上一篇文章<欧尼酱讲JVM(21)--垃圾回收相关算法> ...

  7. 欧尼酱讲JVM(21)——垃圾回收相关算法

    目录 前言 垃圾标记阶段 对象存活判断 引用计数算法 原理 优缺点 举例 可达性分析算法 原理 优缺点 引用链 GC Roots 垃圾清除阶段 标记清除算法 清除过程 优缺点 何为清除 复制算法 原理 ...

  8. 欧尼酱讲JVM(14)——堆

    目录 位置图解 堆的简介 堆空间中关于对象创建和GC 堆的细分内存结构 堆空间大小设置和查看 查看设置的参数 OOM异常说明与举例 新生代与老年代相关参数设置 图解对象分配的一般过程 对象分配过程概述 ...

  9. 【JVM】本地方法栈与堆与方法区

    文章目录 1. 本地方法栈 2. 堆 3. 方法区 1. 本地方法栈 本地方法栈和虚拟机栈有点类似,均具有线程隔离的特点以及都能抛出StackOverflowError和OutOfMemoryErro ...

最新文章

  1. 矩阵快速幂 - 湘潭大学
  2. 专访WebRTC标准之父Daniel C. Burnett
  3. Java基础--static静态原理及API使用示例详解
  4. BugKuCTF WEB web基础$_GET
  5. 手机端适配rem计算方法
  6. Hadoop入门(十五)Mapreduce的数据排序程序
  7. 【BZOJ-1324】Exca王者之剑 最小割
  8. Noise,Error,wighted pocket Algorithm
  9. 万应低代码CTO胡艳平:浅谈低代码在中大型企业数字化转型中的应用
  10. modscan32做主站 一直显示MODBUS MESSAGE TIME-OUT
  11. Android——ASM 极速上手 简单使用
  12. Ubuntu上Qt5+OpenCV配置
  13. python 金融量化盘后分析系统V0.48
  14. 计算机提示应用程序无法启动,电脑应用程序无法正常启动提示0x000007b怎么办?...
  15. matlab在solver,matlab的solver
  16. #define 喵 int_发现这个领养日,狗子觉得不能让喵独占鳌头
  17. Windows中Redis的下载安装与修改密码并启动
  18. 大学生php实训总结_php实训报告心得体会
  19. 开了店铺没访客没流量?Shopee店铺日常运营引流方式来啦
  20. 如何让新入职员工尽快融入集体,进入工作岗位

热门文章

  1. 三一重机遇到百度智能云,工程机械维保有了新方案
  2. Paxos - 分布式表决算法
  3. 全球高分辨率(3小时,10公里)地表太阳辐射数据集(1983-2018)数据单像元数值获取
  4. Linux 运维知识梳理(1)运维基本功
  5. 小程序获取openid和unionid服务号获取unionid服务号消息推送
  6. php http 字符串异常,php - 查询字符串http:// 变成http % 3A % 2F % 2 - 编程异常大全
  7. Maven配置公司的mavne私服
  8. Git将本地项目推送到远程仓库
  9. 身份证号码的合法性校验
  10. 51单片机串口通讯c语言程序,如何使用51单片机实现串口通信