java如何通过内存对象堆分配在android中工作

时间:2014-05-23 00:55:56

标签: java android memory-management stack heap-memory

我是 Android 的新手,但在 Java 方面经验丰富。 当我们这样做时,在 Java 中:

MyClass myObj = new MyClass();

它显然做了以下事情:

  1. 将内存指针myObj插入堆栈
  2. 在堆
  3. 中为类型为MyClass的对象分配新空间
  4. 指定此新空间对myObj
  5. 的引用

    但我对以下问题感到有些困惑:

    1. 但是在 Android 中,这是否也能以同样的方式运作?
    2. Android 是否有完整的堆栈和堆内存?
    3. Android 是否为我的 Java 应用程序( Android 应用程序)安装了Java虚拟机(JVM)?
    4. 非常感谢!

1 个答案:

答案 0 :(得分:3)

Android使用自己的Dalvik虚拟机重新实现了Java虚拟机。与基于堆栈的 JVM 不同, Dalvik 是基于寄存器的。您可以在这里看到两者之间的比较:

http://en.wikipedia.org/wiki/Dalvik_(software)#Performance

是Dalvik VM就像JVM一样堆 - 只是不是堆栈。它与任何Java 1.6源代码100%兼容(1.7支持即将到来,Android Studio中提供初步支持)。所以在你的3个步骤中:

  1. 将对myObj的引用插入寄存器
  2. 在堆
  3. 中为MyClass类型的对象分配新空间
  4. 指定此新空间对myObj
  5. 的引用