黑马程序员技术交流社区

标题: 寄存器问题 [打印本页]

作者: 郭绍强    时间: 2013-4-23 21:41
标题: 寄存器问题
【寄存器】。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象(另一方面,C和C++允许您向编译器建议寄存器的分配方式)。
摘自thinking in java。 请问JAVA什么内容是放在寄存器里的?  迷茫..
作者: 钟伟杰    时间: 2013-4-24 00:12
JVM的所有操作都是基于栈的,它的所有指令都是直接对栈进行操作,在内存中的寄存器区域是由编译器根据需要来分配的,我们程序开发人员不能够通过代码来控制这个寄存器的分配。寄存器也叫程序计数器,每个线程都有自己的程序计数器,在线程启动的时候自动创建,寄存器里存放着下一条将被执行的指令的“地址”。
作者: 陈湘林    时间: 2013-4-24 01:09
简单理解为数据存储,临时用的根据需求,分配内存
JVM的运行时数据区包括:方法区、堆、Java栈、PC寄存器,本地方法栈 [1]。

  除了PC寄存器指向当前应该执行的指令外,JVM的体系结构不使用寄存器而使用栈存储中间数据。因为 [2]:
这样可以保持JVM指令集尽量紧凑;
便于JVM在只有少量通用寄存器的平台上实现;
有助于运行时某些JVM实现的动态编译器和及时编译的优化。
作者: 郭绍强    时间: 2013-4-24 09:08
谢谢!明白了!
作者: 黄玉昆    时间: 2013-4-26 23:33
如果问题已解决,请将分类改为已解决,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2