java - Android 运行时(ART 或 Dalvik)是否包含 Java VM 堆栈或 JVM 之类的 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 使用 stack其内存空间,以便进行逻辑和算术运算。

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



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

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


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

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

相关文章:

java - 从C++重新组装Java中的两个字节,未获得预期结果

java - Scala中是否有等效的junit测试套件

java - Drive API Java应用程序中的稳定性

java - 如何在 java 上设置日期的 24 小时格式?

jvm - 为什么 JVM 被认为是如此出色的软件工程?

java - 如何在 Apache(不是 Tomcat)服务器上执行基于 Java 的 OWL 推理器?

android - 以编程方式设置 Google 手机帐户

android - 在Eclipse中未定义的talkToUser

java - GC Clojure/Java/JVM内存设置

java - 你能混合使用 JVM 语言吗?即: Groovy & Clojure