程序地带

JVM内存结构(一)


java内存结构图

 


JVM栈帧  >>>用来记录执行的方法信息

一个方法就是一个栈帧空间!


问题:栈帧空间什么时候销毁?


回答:方法执行结束之后(或者方法发生异常)就会出栈,遵循先进后出原则销毁JVM栈帧。



int  i =0;
底层汇编代码
iconst_1  在操作数栈中有1值
istore_1 将该1值放入到局部变量表中
iload_1 局部变量表中1复制给int类型 


问题:为什么会发生栈溢出的问题



回答: 有可能由于递归调用,导致生产过多栈帧。


如何避免栈溢出解决方案:


1.增加栈内存  -Xss256k


2.减少递归深度调用,通过一定条件退出。


 程序计数器  >>>用来记录当前线程的执行的行号,只有在多线程环境才有用

【javap -c -v   class地址】将class文件反编译成汇编指令


本地方法栈  >>> natice方法java调用c编写的方法


 


 


 


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/coderyqwh/article/details/109757221

随机推荐

vue 嵌套到ios中_在iOS中渲染vue与事件处理

vue 嵌套到ios中_在iOS中渲染vue与事件处理

上一节我们已经完成了在iOS中集成vue,并成功拿到了创建Node的数据回调,这一节我们来完成Node的建立与渲染,并完成事件支持。「第一步:定义Node节点的数据结构」具体定义如下:@int...

只有橘子 阅读(747)

每个月都有的那么几天 2020.12.10日记

可能每个月都有那么几天不想学习的时候,今天就是这样。早上竟然离谱的睡到了十一点半,是真的离谱昨晚我睡的也很早也没有失眠,不知道怎么睡了这么久,中...

每天都来写日记 阅读(983)

centos 最顶级目录详解

centos 最顶级目录详解

/目录下所有文件树形结构以下是对这些目录的解释:/bin:bin是Binaries(二进制文件)的缩写,这个目录存放着最经常使用的命令。/boot:这里存放的...

诸葛延昌 阅读(463)

浅谈数据结构的高级知识点并查集

并查集能在一张无向图中维护节点之间的连通性,这是他的基本用途之一。实际上并查集擅长动态维护许多具有传递性的关系。并查集实际上是由若干棵树构成的深林在计算机科学中,并查集是一...

gggwfn1982 阅读(405)

python同花顺 财务_同花顺使用帮助之财务分析篇

核心提示:将报表分为三个方面:单个年度的财务比率分析、不同时期的比较分析、与同业其它公司之间的比较。相关下载:同花顺2011(免费股票行情分析交易软件)V7....

weixin_39822629 阅读(153)

uniapp—配置自定义基座

uniapp—配置自定义基座

目录什么是自定义基座自定义基座的使用配置自定义基座安卓自定义基座的配置IOS自定义基座的配置之前分享过的uniapp开发app微信登录时有说到“自定义基座”,今天来说下配置“自定义基座”...

亮晶晶的芋头 阅读(312)