首页 > 试题广场 >

JVM内存不包含如下哪个部分( )

[单选题]
JVM内存不包含如下哪个部分( )
  • Stacks
  • PC寄存器
  • Heap
  • Heap Frame
发表于 2019-07-24 09:37:10 回复(11)
java好像只有栈帧 没有堆帧 pc寄存器 就是 程序计数器
程序计数器是一个以线程私有的一块较小的内存空间,用于记录所属线程所执行的字节码的行号指示器;字节码解释器工作时,通过改变程序计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳准、异常处理、线程恢复等基础功能都需要依赖程序计数器来完成 
QAQ 第一次回答 不知道对不对
编辑于 2019-06-27 10:10:20 回复(3)
Stacks: JVM中有虚拟机栈和本地方法栈,都属于栈
PC寄存器: 即程序计数器,用来记录程序执行过程中的将要执行的下一条指令的行号
Heap:堆,这个不用说
Heap Frame:翻译过来 堆帧?对不起我只听说过栈帧(Stack Frame)
发表于 2020-07-13 18:41:50 回复(1)

堆。 堆是Java对象的存储区域,任何用new字段分配的Java对象实例和数组,都被分配在堆上,Java堆可使用-Xms -Xmx进行内存控制,值得一提的是从JDK1.7版本之后,运行时常量池从方法区移到了堆上。
方法区。它用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据,方法区在JDK1.7版本及以前被称为永久代,从JDK1.8永久代被移除。
虚拟机栈。虚拟机栈中执行每个方法的时候,都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。
本地方法栈。与虚拟机栈发挥的作用相似,相比于虚拟机栈为Java方法服务,本地方法栈为虚拟机使用的Native方法服务,执行每个本地方法的时候,都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。
程序计数器。指示Java虚拟机下一条需要执行的字节码指令。
以上五个区域是Java虚拟机内存划分情况,其中方法区和堆被JVM中多个线程共享,比如类的静态常量就被存放在方法区,供类对象之间共享,虚拟机栈,本地方法栈,pc寄存器是每个线程独立拥有的,不会与其他线程共享。
所以Java在通过new创建一个类对象实例的时候,一方面会在虚拟机栈中创建一个该对象的引用,另一方面会在堆上创建类对象的实例,然后将对象引用指向该对象的实例。对象引用存放在每一个方法对应的栈帧中。

编辑于 2019-12-26 15:09:23 回复(0)
PC,是program counter的缩写,就是程序计数器,PC寄存器中的内容,是下一条要取的指令的16位存储单元地址,在程序执行的过程中,PC中的值会自动加一。 jvm内存中的数据区域有:程序计数器,堆,虚拟机栈,本地方法栈,方法区。 虚拟机栈是描述java方法执行时候的内存模型:每个方法执行的同时,都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息。每一个方法从调用到执行完成的过程,就对应一个栈帧在虚拟机栈中入栈到出栈的过程。 而堆是垃圾回收管理的主要区域,也称“GC堆”,从内存分配的角度来看,线程共享的java堆中可能划分出多个线程私有的分配缓冲区,无论怎么划分,都与存放无关,无论哪个区域,存放的仍是对象实列,所以堆中并没有帧的概念。
发表于 2019-07-17 16:09:51 回复(0)
没人吗
发表于 2019-06-27 08:55:27 回复(0)
什么时候叫pc寄存器了,明明是程序计数器。
发表于 2022-04-01 18:14:32 回复(0)
JVM内存结构划分:堆,虚拟机栈,本地方法栈,方法区,程序计数器 这个题所谓的PC寄存器:PC寄存器( PC register ):每个线程启动的时候,都会创建一个PC(Program Counter,程序计数器)寄存器。 其实就是程序计数器;JVM没有  Heap Frame  (堆帧)
发表于 2021-10-31 20:45:47 回复(0)
JVM运行时数据区域有java虚拟机栈,堆 方法区,本地方法栈,程序计数器,没有堆栈
发表于 2019-08-23 12:25:59 回复(0)
知识盲区
发表于 2019-07-29 01:26:09 回复(0)
发表于 2019-07-25 09:08:41 回复(0)
选D,java只有栈帧没有堆帧,所以没有Heap Frame;JVM内存示意图:

发表于 2022-07-31 08:36:46 回复(0)
JVM运行时数据区域有java虚拟机栈,堆 方法区,本地方法栈,程序计数器,没有堆栈
发表于 2021-09-28 17:22:38 回复(0)
JVM只有栈帧 没有堆帧
发表于 2021-09-20 15:58:28 回复(0)
JVM内存结构划分:堆,虚拟机栈,本地方法栈,方法区,程序计数器 这个题所谓的PC寄存器:PC寄存器( PC register ):每个线程启动的时候,都会创建一个PC(Program Counter,程序计数器)寄存器。 其实就是程序计数器;JVM没有  Heap Frame  (堆帧)
发表于 2021-06-16 00:54:04 回复(0)
做个小笔记把。JVM中有JAVA虚拟机栈,栈帧。堆,程序计数器(也就是题目中所谓的PC寄存器),本地方法栈,方法区
发表于 2020-10-17 11:33:58 回复(0)

对于JVM的题目都是开局一张图,剩下全靠理解

发表于 2020-03-21 00:37:32 回复(0)
JVM内存结构划分:堆,虚拟机栈,本地方法栈,方法区,程序计数器
这个题所谓的PC寄存器:PC寄存器( PC register ):每个线程启动的时候,都会创建一个PC(Program Counter,程序计数器)寄存器。
其实就是程序计数器;JVM没有  Heap Frame  (堆帧)
发表于 2020-02-13 11:49:59 回复(0)
PC寄存器 =  程序计数器
Heap Frame :堆框架,并不能理解。
发表于 2021-05-07 21:28:21 回复(1)