这个问题非常明显。当我准备好JVM规范时,我遇到了Java Stacks
“2.5.2 Java虚拟机堆栈”
每个Java虚拟机线程都有一个私有Java虚拟机 堆栈,与线程同时创建。 Java虚拟机 堆栈存储帧(第2.6节)。 Java虚拟机堆栈是类似的 对于像C这样的传统语言的堆栈:它保存在本地 变量和部分结果,并在方法调用中起作用 并返回。因为Java虚拟机堆栈永远不会 直接操作除了推和弹框架,框架可能是堆 分配。 Java虚拟机堆栈的内存不需要 是连续的。
除了线程堆栈之外,是否有任何类型的堆栈使用或我们可以分类?
答案 0 :(得分:2)
规范中的某些类型的堆栈是:
1)Operand Stacks:每个帧包含一个后进先出(LIFO)堆栈,称为其操作数堆栈。帧的操作数堆栈的最大深度在编译时确定,并与与帧关联的方法的代码一起提供。
2)Native Method Stacks:Java虚拟机的实现可以使用传统的堆栈,通俗地称为" C堆栈,"支持本机方法(用Java编程语言以外的语言编写的方法)。本机方法堆栈也可以用于以诸如C语言的Java虚拟机的指令集的解释器的实现来使用.Java虚拟机实现,其不能加载本机方法并且本身不依赖于传统的堆栈需要不提供本机方法堆栈。如果提供,则通常在创建每个线程时为每个线程分配本机方法堆栈。
3)Java Virtual Machine Stacks:你在问题中提到过。