1、谷歌开发的,应用于Android系统,并在Android2.2中提供了JIT,发展迅猛
2、Dalvik VM 只能称作虚拟机,不能称作 “ Java 虚拟机”,它没有遵循 Java
虚拟机规范
3、不能直接执行 Java 的 class 文件
4、基于寄存器架构,不是jvm的栈架构。
5、执行的是编译以后的dex (Dalvik Executable)文件。执行效率比较高。
它执行的dex (Dalvik Executable)文件可以通过class文件转化而来,使用Java语法编写应用程序,可以直接使用大部分的Java API等
6、安卓5.0使用支持提前编译(ahead of time Compilation, AOT) 的ART VM替代 Dalvik VM
扩展:
JVM的指令为什么都是根据栈来设计的?
答:Jvm是跨平台的,不同平台CPU架构不同,所以不能设计为基于寄存器的。
优点:跨平台、指令集小、编译器容易实现。
缺点:指令集多,性能相对于基于寄存器的差。