How java works in android through memory object heap allocation

不羁岁月 提交于 2019-12-07 12:53:50

问题


I am new to Android but experienced in Java. In Java when we do this:

MyClass myObj = new MyClass();

It clearly does the following:

  1. Inserts the memory pointer myObj upto the stack
  2. Allocates a new space for object of type MyClass in the heap
  3. Appoints this new space's reference to myObj

But I am a little bit confused about the following questions:

  1. But in Android, does this work in the same way?
  2. Does Android have full stack and heap memories?
  3. Does Android have Java Virtual Machine (JVM) for my Java app (Android app) to work on?

Thanks a lot!


回答1:


Android re-implemented the Java Virtual Machine with their own Dalvik Virtual Machine. Unlike the JVM which is stack-based, Dalvik is register based. You can see a comparison between the two here:

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

Yes Dalvik VM has a heap just like the JVM - just not a stack. It is 100% compatible with any Java 1.6 source code (1.7 support is slowly coming, and preliminary support is available in Android Studio). So in your 3 steps:

  1. Inserts the reference to myObj in a register
  2. Allocates a new space for object of type MyClass in the heap
  3. Appoints this new space's reference to myObj


来源:https://stackoverflow.com/questions/23819452/how-java-works-in-android-through-memory-object-heap-allocation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!