欧尼酱讲JVM(13)——本地方法栈
位置图解
本地方法栈在运行时数据区中,三个灰色的部分是线程私有的。
本地方法栈作用
Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。
本地方法栈是线程私有了,允许被线程固定或者是可动态扩展的内存大小
本地方法栈和虚拟机栈在内存溢出方面是相同的
- 如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个StackOverflowError异常。
- 如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个OutOfMemoryError异常。
本地方法使用C语言实现的
它的具体做法是Native Method Stack中登记native方法,在Execution Engine执行时加载本地方法库。
本地方法栈通常和本地方法接口打交道进而和本地方法库打交道,比如线程启动的时候,会把一个Start0压入本地方法栈。例如:在调用start()方法的时候,在java虚拟机栈中把start()方法作为栈针压入虚拟机栈中,在此过程中如果需要调用本地方法,则把start0()作为栈针压入本地方法栈,然后通过动态链接的方式,链接到c语言的库。
好了本地方法栈就到此结束了,小伙伴们,记得三连哦~
欧尼酱讲JVM(13)——本地方法栈相关推荐
- 欧尼酱讲JVM(12)——本地方法接口
位置图解 图中虚线框起来的就是本地方法接口 什么是本地方法 简单地讲,一个Native Method就是一个Java调用非Java代码的接口,一个Native Method是这样一个Java方法:该方 ...
- 欧尼酱讲JVM(01)——整体概览(导航)
从业这么久了,输入了很多东西,趁我还算不老,趁我还有精力,我觉得把我的知识和经验整理一番,输出出来. 那么首先就从JVM开始吧.我将从以下几个方面讲解JVM: 欧尼酱讲JVM(02)--类的加载过程 ...
- 欧尼酱讲JVM(17)——方法区详解有图有真相
目录 位置图解 方法区的理解 方法区在哪里 方法区的基本理解 HotSpot中方法区的理解(演进过程) 方法区的内部结构 图解方法区内部结构 运行时常量池 class文件中常量池的理解 为什么需要常量 ...
- java的标量和聚合量_欧尼酱讲JVM(16)——如何基于逃逸分析进行代码优化
代码优化是一个涉及面很广的"工程",但是今天呢,本姑娘主要给大家分享基于逃逸分析,如何给代码做优化.那么逃逸分析是什么呢?我前面的文章也仔细的讲解过了,这里就不过多的赘述了.有不明 ...
- JVM之本地方法栈Naitve Method Stack
JVM之本地方法栈Naitve Method Stack 目录: JVM体系结构概览 JVM之本地方法栈解析 1. JVM体系结构概览 2. JVM之本地方法栈解析 本地接口的作用是融合不同的编程语言 ...
- 欧尼酱讲JVM(22)——分代收集算法
目录 分代收集算法 HotSpot中的分代收集 年轻代 老年代 没有一种最好的算法吗?没有,没有最好只有最适合.具体问题具体分析! 上一篇文章<欧尼酱讲JVM(21)--垃圾回收相关算法> ...
- 欧尼酱讲JVM(21)——垃圾回收相关算法
目录 前言 垃圾标记阶段 对象存活判断 引用计数算法 原理 优缺点 举例 可达性分析算法 原理 优缺点 引用链 GC Roots 垃圾清除阶段 标记清除算法 清除过程 优缺点 何为清除 复制算法 原理 ...
- 欧尼酱讲JVM(14)——堆
目录 位置图解 堆的简介 堆空间中关于对象创建和GC 堆的细分内存结构 堆空间大小设置和查看 查看设置的参数 OOM异常说明与举例 新生代与老年代相关参数设置 图解对象分配的一般过程 对象分配过程概述 ...
- 【JVM】本地方法栈与堆与方法区
文章目录 1. 本地方法栈 2. 堆 3. 方法区 1. 本地方法栈 本地方法栈和虚拟机栈有点类似,均具有线程隔离的特点以及都能抛出StackOverflowError和OutOfMemoryErro ...
最新文章
- 矩阵快速幂 - 湘潭大学
- 专访WebRTC标准之父Daniel C. Burnett
- Java基础--static静态原理及API使用示例详解
- BugKuCTF WEB web基础$_GET
- 手机端适配rem计算方法
- Hadoop入门(十五)Mapreduce的数据排序程序
- 【BZOJ-1324】Exca王者之剑 最小割
- Noise,Error,wighted pocket Algorithm
- 万应低代码CTO胡艳平:浅谈低代码在中大型企业数字化转型中的应用
- modscan32做主站 一直显示MODBUS MESSAGE TIME-OUT
- Android——ASM 极速上手 简单使用
- Ubuntu上Qt5+OpenCV配置
- python 金融量化盘后分析系统V0.48
- 计算机提示应用程序无法启动,电脑应用程序无法正常启动提示0x000007b怎么办?...
- matlab在solver,matlab的solver
- #define 喵 int_发现这个领养日,狗子觉得不能让喵独占鳌头
- Windows中Redis的下载安装与修改密码并启动
- 大学生php实训总结_php实训报告心得体会
- 开了店铺没访客没流量?Shopee店铺日常运营引流方式来啦
- 如何让新入职员工尽快融入集体,进入工作岗位
热门文章
- 三一重机遇到百度智能云,工程机械维保有了新方案
- Paxos - 分布式表决算法
- 全球高分辨率(3小时,10公里)地表太阳辐射数据集(1983-2018)数据单像元数值获取
- Linux 运维知识梳理(1)运维基本功
- 小程序获取openid和unionid服务号获取unionid服务号消息推送
- php http 字符串异常,php - 查询字符串http:// 变成http % 3A % 2F % 2 - 编程异常大全
- Maven配置公司的mavne私服
- Git将本地项目推送到远程仓库
- 身份证号码的合法性校验
- 51单片机串口通讯c语言程序,如何使用51单片机实现串口通信