java - Android 运行时(ART 或 Dalvik)是否像 JVM 一样包含 Java VM 堆栈或 native 方法堆栈?

标签 java android jvm android-runtime

根据 Oracle 文档 Run-Time Data Areas状态,JVM包含数据区的各个部分: enter image description here 而且我还了解到 JVM 是基于堆栈的,而 ART/Dalvik 是基于寄存器的。 Dalvik堆由Active Heap和Zygote Heap组成。
问题如下:
1. stack-based中的“Stack”和Java VM stack/Native Method Stack中的“Stack”有什么区别?
2. ART/Dalvik 是否像JVM 中的Java VM 堆栈一样包含堆栈?
3. ART/Dalvik 运行时数据区是什么样的?

最佳答案

  1. What is the difference between "Stack" in stack-based and "Stack" in Java VM stack/Native Method Stack.

它们指的是同一件事。 “基于堆栈的”VM 使用其内存空间的堆栈 来执行逻辑和算术运算。

Does ART/Dalvik contain stacks like Java VM stacks in JVM?

Android VM 实现(Dalvik 和 ART)不是基于堆栈,而是基于寄存器。这允许 Android 做的一件事是直接将虚拟寄存器映射到真实的硬件寄存器,从而提高执行速度和效率。

  1. What do ART/Dalvik Run-Time Data Areas look like?

您可以查看此示例,并阅读有关基于堆栈与基于寄存器的 VM 的更多信息 here .

关于java - Android 运行时(ART 或 Dalvik)是否像 JVM 一样包含 Java VM 堆栈或 native 方法堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53003459/

相关文章:

java - Snackbar的高度自定义

Android FIrebase - FirebaseListAdapter 的数据源

java - 如何在 Android 中执行网页抓取?

java - 如何将文本渲染为位图并绘制它

java - Java 类加载的解析阶段实际上从哪里开始?

java - 类 java.nio.file.Files 抛出 FileAlreadyExistsException 作为 "optional specific exception"。这是什么意思?

java - 在 JAVA 中创建 SOAP POST

java - Java 的全栈框架

java - 无法使用 PHP 运行 shell 函数

java - 为什么网络驱动器闪烁后 JVM 无法恢复?