1.Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的则是其专有的文件格式DEX(Dalvik Executable)。

2.Java虚拟机将.java文件编译成字节码文件(.class)然后打包到JAR文件,而后Java虚拟机会从相应的CLASS文件和JAR文 件中获取相应的字节码;Android应用虽然也是使用Java语言进行编程,Dalvik虚拟机把.java文件编译成.class文件,还会通过一个工具(dx)将应用所有的 CLASS文件转换成一个DEX文件,而后Dalvik虚拟机会从其中读取指令和数据。实际上.dex文件就是把多个class文件中的常量、方法等放到一起。每个类文件中都存在一个常量池,在dex文件中由一个常量池来管理。

3.Dalvik可执行文件体积更小。SDK中有一个叫dx的工具负责将java字节码转换为Dalvik字节码。

4.Java虚拟机与Dalvik虚拟机架构不同。java虚拟机基于栈架构。程序在运行时虚拟机需要频繁的从栈上读取或写入数据。这过程需要更多的指令分派与内存访问次数,会耗费不少CPU时间,对于像手机设备资源有限的设备来说,这是相当大的一笔开销。Dalvik虚拟机基于寄存器架构,寄存器是在cpu上的一块存储空间,数据的访问通过寄存器间直接传递,这样的访问方式比基于栈方式快的多。

Dalvik虚拟机与java虚拟机的区别相关推荐

  1. Dalvik VM和Java VM的区别:

    1.Dalvik和标准Java虚拟机(JVM)首要差别: Dalvik基于寄存器 JVM基于栈 基于寄存器的虚拟器对于更大的程序来说,在它们编译的时候,花费的时间更短. 2.Dalvik和Java字节 ...

  2. 虚拟机与Java虚拟机

    虚拟机 所谓虚拟机(Virtual Machine),就是一台虚拟的计算机.它是一款软件,用来执行一系列虚拟计算机指令.大体上,虚拟机可以分为系统虚拟机和程序虚拟机. 大名鼎鼎的Visual Box, ...

  3. 【jvm系列-01】初识虚拟机与java虚拟机

    JVM系列整体栏目 内容 链接地址 [一]初识虚拟机与java虚拟机 https://blog.csdn.net/zhenghuishengq/article/details/129544460 [二 ...

  4. 一篇文章了解Java虚拟机,Java虚拟机内存详解

    虚拟机介绍 Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现.编译虚拟机的指令集与编译微处理器的指令集非常类似.Java虚拟机包括一套字节码指令集.一组寄存器.一 ...

  5. Java虚拟机 和 java虚拟机下的进程

    一.什么是Java虚拟机      当你谈到Java虚拟机时,你可能是指:      1.抽象的Java虚拟机规范      2.一个具体的Java虚拟机实现      3.一个运行的Java虚拟机实 ...

  6. Dalvik虚拟机、Java虚拟机与ART虚拟机

    一.Java虚拟机 1. Java的是Java字节码. 传统的Java程序经过编译,生成Java字节码保存在class文件中,Java虚拟机通过解码class文件中的内容来运行程序. 2. Java虚 ...

  7. java虚拟机系列:java虚拟机内存模型

    java内存模型,分为程序计数器,虚拟机栈,本地方法栈,java堆,java栈.根据受访的权限不同设置,可以分为线程共享和线程私有.线程共享指可以允许所有的线程共享访问的一类内存区域,包括堆内存区,方 ...

  8. (一)JVM成神路之初识虚拟机 - 探寻Java虚拟机的前世今生之秘

    引言 JVM(Java Virtual Machine)Java虚拟机的概念大家都不陌生,Java之所以可以做到"一次编译,到处运行"的跨平台性,其根本原因就在于JVM.JVM是建 ...

  9. java 虚拟机规范_Java虚拟机规范----Java虚拟机结构

    Java体系和一些基本概念 Java平台的结构图: JVM与JRE.JDK关系? JVM:Java Virtual Machine(Java虚拟机),负责执行符合规范的Class文件 JRE: Jav ...

最新文章

  1. go 一个文件引进另一个文件_一个浏览 GitHub 文件的神操作!
  2. PMCAFF | 产品经理挑战赛,等你来战
  3. 牛客 - Sumo and Easy Sum(推公式+数学)
  4. Servlet生命周期中的service方法分析
  5. sql server简单查询
  6. hibernate乐观锁_Hibernate Collection乐观锁定
  7. Java 的面向接口编程
  8. 移动先行之谁主沉浮? 带着你的Net飞奔吧!
  9. ip pim spare 源树 和 共享树_如何实现IP组播,减少摄像头和网络的负载?
  10. mybatis-plus自定义sql注入器
  11. 服务器c盘有个inetpub文件夹,inetpub是什么文件夹
  12. excel制作折线图
  13. LINUX HTB队列规定用户指南
  14. ubuntu20.04安装成功SecureCRT 9.0.1,全网首发!!
  15. k8s-学习总结(控制器:RS\Deploy\DS\Job\CJ)
  16. 芝诺志愿者走进养老院送温暖
  17. CF1146G Zoning Restrictions
  18. 关于Mac本中的Pycharm如何设置字体大小?
  19. The Social-Engineer Toolkit(社会工程学套件)全网第一篇套件全模块讲解
  20. Java高频重点面试题,看这一篇就够了。

热门文章

  1. Python 标准库之 datetime
  2. 【VB】学生信息管理系统5——数据库代码
  3. curl模拟post请求
  4. dataframe 转json
  5. LeetCode简单题之二叉树的最大深度
  6. i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核
  7. Paddle Release Note
  8. Caffe框架GPU与MLU计算结果不一致请问如何调试?
  9. Android LayoutInflater 的使用
  10. Android 串口通讯 获取卡号