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.维护内部的常量池

  

时间: 2025-01-02 03:27:45

JVM与DVM的区别的相关文章

android 58 jvm和dvm的区别(Dalvil VM)

java程序在jvm和dvm的执行过程: #jvm和dvm的区别(Dalvil VM) 谷歌刚开发的安卓系统用的就是JVM,JVM版权属于sun公司也就是Oracle公司,后来用的是DVM,由于版权问题.DVM是基于openjdk做的2次开发,DVM解决了JVM的效率问题,jvm的运行效率会低. jvm里面class代码必须要在jvm里面进行解释后在底层操作系统里面执行,真正执行是底层操作系统执行,由于必须在jvm里面解释所以效率要低. dvm会先把class文件转换为dex文件之后再去解释执行

Android系统架构、JVM和DalvikVM的区别

一.系统框架 1.Anroid大致分为四层结构,五块区域 1)应用程序层(Applications) 所有安装在手机上的应用程序都属于这一层. 2)应用程序框架(Application Framework) 提供大量的API供开发人员使用,Android自带的一些核心应用就是使用这些API完成的. 3)函数库(Libraries) -Surface Manager:管理对显示子系统的访问,并可以对多个应用程序的2D和3D图层机提供无缝整合 -Media Framework:基于PacketVid

Dalvik VM (DVM) 与Java VM (JVM)之间有哪些区别?

Dalvik虚拟机存在于Android系统,JVM是java虚拟机,两者都是虚拟机,本文就对两者进行比较,讲述它们的不同. Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一.它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统.(dx 是一套工具,可以将 Java .class 转换成 .dex 格式. 一个dex档通常会有多个.

jvm与dvm两种虚拟机的不同

jvm : java虚拟机 sun dvm:  dalvik虚拟机  google 区别:         1.基于的架构不同,jvm 基于栈架构,栈是位于内存上的一个空间,执行指令操作,需要向cpu寻址: dvm 基于寄存器架构,寄存器是cpu的一个组成部分,执行指令操作无需寻址直接执行.         2.执行文件的格式不同,jvm执行的是多个.class文件. dvm执行的是一个.dex文件

JRE与JVM、JDK的区别

一.      详细介绍 1.JVM -- java virtual machine        JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解 释给本地系统执行. JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行 时操作不同的内存区域. JV

JRE与JVM、JDK的区别,简要介绍

JDK=Java Development Kit,Java开发工具集,主要包括JRE和编译器组件.是进行Java开发的必要环境.所以安装JDK就包括JRE的安装.JDK是JRE的完全超集.JRE=Java Runtime Environment,Java运行时环境,主要提供运行Java Class的环境.JDK中本身包含JRE.如果只想运行Java程序,而不需要进行编译(非开发环境,生产环境),可以安装JRE,不用安装JDK.JVM=Java Virtue Machine,Java虚拟机.Jav

JDK,JRE,JVM,三者的区别于联系?

万事开头难,从基础抓起! 下载JDK官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html JDK:Java Development Kit,java开发工具包.这个包是java的开发人员使用的软件开发包(SDK: Software Development Kit).这里包含了很多开发工具库,如:函数库.编译程序. JRE:Java Runtime Kit, java的运行环境.主要是给java程序的使用者用的.

Andriod——区别DVM与JVM

区别DVM与JVM 1.首要差别 Dalvik: 基于寄存器,编译和运行都会更快些 JVM: 基于栈, 编译和运行都会慢些 2.字节码的区别 Dalvik: 执行.dex格式的字节码,是对.class文件进行压缩后产生的,文件变小 JVM: 执行.class格式的字节码 3.运行环境的区别 Dalvik : 一个应用启动都运行一个单独的虚拟机运行在一个单独的进程中 JVM: 只能运行一个实例, 也就是所有应用都运行在同一个JVM中 JVM和DVM的区别 DVM是Dalvik Virtual Ma

Andriod——区别DVM与JVM (2)

区别DVM与JVM 1.首要差别 Dalvik: 基于寄存器,编译和运行都会更快些 JVM: 基于栈, 编译和运行都会慢些 2.字节码的区别 Dalvik: 执行.dex格式的字节码,是对.class文件进行压缩后产生的,文件变小 JVM: 执行.class格式的字节码 3.运行环境的区别 Dalvik : 一个应用启动都运行一个单独的虚拟机运行在一个单独的进程中 JVM: 只能运行一个实例, 也就是所有应用都运行在同一个JVM中 JVM和DVM的区别 DVM是Dalvik Virtual Ma