A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭绍强 中级黑马   /  2013-4-23 21:41  /  1305 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【寄存器】。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象(另一方面,C和C++允许您向编译器建议寄存器的分配方式)。
摘自thinking in java。 请问JAVA什么内容是放在寄存器里的?  迷茫..

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
JVM的所有操作都是基于栈的,它的所有指令都是直接对栈进行操作,在内存中的寄存器区域是由编译器根据需要来分配的,我们程序开发人员不能够通过代码来控制这个寄存器的分配。寄存器也叫程序计数器,每个线程都有自己的程序计数器,在线程启动的时候自动创建,寄存器里存放着下一条将被执行的指令的“地址”。
回复 使用道具 举报
简单理解为数据存储,临时用的根据需求,分配内存
JVM的运行时数据区包括:方法区、堆、Java栈、PC寄存器,本地方法栈 [1]。

  除了PC寄存器指向当前应该执行的指令外,JVM的体系结构不使用寄存器而使用栈存储中间数据。因为 [2]:
这样可以保持JVM指令集尽量紧凑;
便于JVM在只有少量通用寄存器的平台上实现;
有助于运行时某些JVM实现的动态编译器和及时编译的优化。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
谢谢!明白了!
回复 使用道具 举报
如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马