问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JVM 中一个线程的 Java 栈和寄存器中分别放的是什么?

发布网友 发布时间:2022-05-10 19:44

我来回答

1个回答

热心网友 时间:2023-10-25 16:32

jvm内存模型:Java代码是运行在Java虚拟机之上的,由Java虚拟机通过解释执行(解释器)或编译执行(即时编译器)来完成,故Java内存模型,也就是指Java虚拟机的运行时内存模型。

运行时内存模型,分为线程私有和共享数据区两大类,其中线程私有的数据区包含程序计数器、虚拟机栈、本地方法区,所有线程共享的数据区包含Java堆、方法区,在方法区内有一个常量池。java运行时的内存模型图,如下:

从图中,可知内存分为线程私有和共享两大类:

(1)线程私有区,包含以下3类:

程序计数器,记录正在执行的虚拟机字节码的地址;

虚拟机栈:方法执行的内存区,每个方法执行时会在虚拟机栈中创建栈帧;

本地方法栈:虚拟机的Native方法执行的内存区;


(2)线程共享区,包含以下2类

Java堆:对象分配内存的区域;

方法区:存放类信息、常量、静态变量、编译器编译后的代码等数据;

常量池:存放编译器生成的各种字面量和符号引用,是方法区的一部分。


楼主提到的Java栈,一般而言是指图中的虚拟机栈,在代码中的方法调用过程中,往往需要从一个方法跳转到另一个方法,执行完再返回,那么在跳转之前需要在当前方法的基本信息压入栈中保存再跳转。

三、关于寄存器的问题

对于java最常用的虚拟机,sun公司提供的hotspot虚拟机,是基于栈的虚拟机;而对于android的虚拟机,则采用google提供的dalvik,art两种虚拟机,在android 5.0以后便默认采用art虚拟机,这是基于寄存器的虚拟机。  楼主问的是jvm(即java vm),这是基于栈的虚拟机。那么关于虚拟机栈,这块内存的内容,我们再进一步详细分析,如下图:

可以看到,在虚拟机栈有一帧帧的 栈帧组成,而栈帧包含局部变量表,操作栈等子项,那么线程在运行的时候,代码在运行时,是通过程序计数器不断执行下一条指令。真正指令运算等操作时通过控制操作栈的操作数入栈和出栈,将操作数在局部变量表和操作栈之间转移。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
LOL9.20版本余震辅助狗熊怎么玩_9.20版本余震辅助狗熊玩法攻略_百度... 英雄联盟的狗熊怎么出装 英雄联盟狗熊的出装 张医师你好,我干喷漆的工作没几天手指就好痒是什么原因啊? ...疼,就是又疼又痒的感觉!请问是怎么回事?怎么治! ...白酒和啤酒后第二天发现手掌痒,然后按的话有点疼,以前没有出现过这种... 芦苇有哪些用处 芦苇有哪些用途 芦苇多少用处 乾安1.2.3.4.5路公交车路线图 信贷员抢单平台那个比较不错? 有好用的信贷获客抢单APP推荐吗?最好是可以无门槛退单的,售后服务好点的 信贷经理抢单APP那个获客效果好? 藏头诗我爱萌仔 喜萌仔怎么添加联系人 喜萌仔T11手表怎么开不了机 打七折怎么计算 868元。打七折多少钱。怎么算的公式? 怎么能找到微信好友隐藏的码和手机号码? 我的百度网盘在那 如何在应用市场中下载百度网盘aplp 谁可以告诉我美国的什么 标准普尔、纳斯达克、道琼斯指数分别是什么?有什么区别?作用和影响范围? 美股道琼斯指数怎么添加到手机自选 美股实时行情道琼斯指数可以通过艾德一站通查看吗? 美国股市的道琼斯指数和纳斯达克指数有什么区别与联 美国三只股票只,那只股票最具有代表性?(标准500,美道琼斯指数) 卖空单处理方式 家庭怎样做豆腐脑? 我的用电脑版微信登录不上去,而别人的号却可以登录上去(同一台电脑)? 大腿内侧肌肉突然抽筋怎么预防 信贷员抢单APP那个比较好? 越南咖啡进口中国一般采用什么运输方式 信贷抢单软件哪个信贷经理比较常用? 个人从越南进口咖啡需要什么多手续 越南进口咖啡(100条×16g)与雀巢咖啡(100条x15g)价几乎相差一半,两品质有什么区别 越南中原G7咖啡g7咖啡三合一越版进口速溶咖啡的口味 淘宝,卖的,越南进口咖啡,那个咖啡怎么样有喝过得没。 社保缴费档次在成都税务App上面改了以后需要每个月修改吗 越南进口咖啡豆关税是多少?一吨从越南到中国关税大概是多少? 越南咖啡的加工 在三线城市开个越南咖啡越南特产专卖店怎么样? 如何在python环境中生成斐波那契数列 卫生间的地砖铺设方法及注意事项 卫生间地砖怎么铺新手 卫生间地砖怎么贴 卫生间地砖翻修怎么贴有哪些贴法 不是无线的路由器怎么设置wifi? 梦见爬松软的沙坡,最终还是爬上来了 梦见徒手爬沙坡到顶失手 m.sosuo.name 网线是从别人家路由器拉过来的,家里有无线路由器和wifi,怎么设置让wifi和电脑都能上网?