在上一篇文章中,小编为您详细介绍了关于《什么样相机滤镜好看?有没有单反相机使用教程》相关知识。本篇中小编将再为您讲解标题为什么样下面的操作会导致Java虚拟机崩溃呢?如何看待阿里在JVMLS介绍的JVM三个方面的创新:多租户、协程和预热。

咱们抛开Java不说,从函数调用的角度来说说其中①种可能会导致崩溃的原因。
程序运行时,CPU读入程序机器命令并执行。程序运行中的各种变量被保存在寄存器中。
①个CPU有为数不多的寄存器(大概是⑧-①⑥个,记不清了)。以X⑧⑥架构为例,约定每个寄存器分别存储不同类型的数据:有的寄存器存储机器指令,有的存储函数栈指针,有的寄存器存储调用函数的返回位置。
比如以下程序:
void foo(){ bar(); // do foo}void bar(){ // do something}
这里要提①下函数栈(function stack)。 每个函数在执行自己代码的时候是有自己的栈帧的(stack frame)。当它调用另①个函数时,程序会创建①个新的栈帧并\"push\"到程序栈的栈顶。比如foo 执行时有自己的栈帧,当调用bar时,操作系统会给bar创建①个栈帧并push到函数栈中。当bar执行完毕,bar的栈帧被pop出栈,函数栈的栈顶又变成了foo的栈帧。
程序栈是存在在①个连续的数组上的。入栈和出栈操作都是指针的移动。指针就是CPU的寄存器:有①个叫做ebp, 它指向当前栈的起始位置。还有①个esp,它指向栈顶地址。
以X⑧⑥为例,大部分函数栈是向下生长的,所以esp和ebp 的地址随着栈越来越深而逐渐变小。
程序运行之前编译器会将程序翻译成机器代码,大概长这样:
内存地址 机器命令⓪x①②③④⑤⑥⑦⑧ call ⓪x⑧⑦⑥⑤④③②①
编后语:关于《为什么样下面的操作会导致Java虚拟机崩溃呢?如何看待阿里在JVMLS介绍的JVM三个方面的创新:多租户、协程和预热》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《在淘宝买到了次品之后我能给差评么?有没有哪位朋友在淘宝网上保修过电脑组机配件》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器