开发者社区> 问答> 正文

Java虚拟机的栈有哪几个区域呀?

Java虚拟机的栈有哪几个区域呀?

展开
收起
游客4ztx2pti3xtdw 2022-03-30 17:55:18 513 0
1 条回答
写回答
取消 提交回答
  • Java虚拟机的栈有三个区域:局部变量区、运行环境区、操作数区。
    (1)局部变量区
    每个Java方法使用一个固定大小的局部变量集。它们按照与vars寄存器的字偏移量来寻址。局部变量都是32位的。长整数和双精度浮点数占据了两个局部变量的空间,却按照第一个局部变量的索引来寻址。(例如,一个具有索引n的局部变量,如果是一个双精度浮点数,那么它实际占据了索引n和n+1所代表的存储空间。)虚拟机规范并不要求在局部变量中的64位的值是64位对齐的。虚拟机提供了把局部变量中的值装载到操作数栈的指令,也提供了把操作数栈中的值写入局部变量的指令。 (2)运行环境区 在运行环境中包含的信息用于动态链接,正常的方法返回以及异常传播。

    2022-03-30 17:56:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
从《阿里巴巴Java开发手册》编写推广谈技术成长 立即下载
JVM的GC 立即下载
基于JVM的脚本语言开发、运用实践 立即下载