首页 > 代码库 > JVM与DVM的区别

JVM与DVM的区别

共同点:

  解释执行byte code 字节码文件

  在操作系统的进程运行一个VM,并执行一个单独的程序

不同点:

  程序的结构不同:JVM字节码由多个.class文件组成,Dalvik只包含一个.dex格式的文件,这个文件包含了程序中所有的类。

  架构不同:Dalvik是register-based基于寄存器(CPU),Sun JDK是基于stack-based基于栈(内存)。

  Dalvik优势:编译是提前优化代码而不是等到运行时。

        虚拟机很小,占空间小。可以满足可高效运行多种虚拟机实例。

        常量池修改为只使用32为的索引,以简化解释器。

  DVM的执行过程:1.编译为.class文件

           2.使用dx工具抽取.class  文件共性形成.dex

           3.维护内部的常量池