根据Oracle文档Run-Time Data Areas的说明,JVM包含数据区域的各个部分:
我还了解到JVM是基于堆栈的,而ART / Dalvik是基于寄存器的。 Dalvik堆由Active Heap和Zygote Heap制成。
问题如下:
1.基于堆栈的“堆栈”与Java VM堆栈/本机方法堆栈中的“堆栈”有什么区别。
2. ART / Dalvik是否在JVM中包含Java Java堆栈之类的堆栈?
3. ART / Dalvik运行时数据区是什么样的?
答案 0 :(得分:4)
- 基于堆栈的“堆栈”与Java VM堆栈/本机方法堆栈中的“堆栈”有什么区别。
他们指的是同一件事。 “基于堆栈的” VM使用其内存空间的stack
来执行逻辑和算术运算。
ART / Dalvik是否在JVM中包含Java VM堆栈之类的堆栈?
Android VM实现(Dalvik和ART均不是Stack based
,而是Register based
。 Android允许做的一件事是将虚拟寄存器直接映射到真实的硬件寄存器,从而提高了执行速度和效率。
- ART / Dalvik运行时数据区是什么样的?
您可以看到一个示例,并详细了解基于堆栈的虚拟机和基于寄存器的虚拟机here。