文档章节

JVM和DVM的区别

china灬xiaoyu
 china灬xiaoyu
发布于 2016/07/31 15:36
字数 277
阅读 13
收藏 1

1、构架不同

 栈是位于内存中的一块区域,执行之前必须要通过CPU来寻址,才知道要执行的是什么。

寄存器是属于CPU的一部分,执行的时候无需寻址。由此看出DVM更好一些。

2、执行的文件格式不同

      JVM执行的是.class文件;  DVM执行的是.dex文件;

      那么这两种文件有什么差异呢?

      .class文件:其实JVM执行的是多个.class文件,并且每一个.class文件里面都包含文件的头                               信息,每一个都有头文件,就产生了冗余!

       .dex文件:其实就是对.class进行优化,将公共的头信息进行提取,减少了冗余,只执行一                              个.dex文件!

                                                    这就导致了dvm虚拟机更优!

        为什么有了JVM还要开发出DVM?

        因为版权问题,JVM是SUN公司的,不让谷歌用,谷歌就搞了DVM(07年),专为安卓设备设计,更适用于移动设备~!

 

 

© 著作权归作者所有

共有 人打赏支持
china灬xiaoyu
粉丝 5
博文 15
码字总数 8720
作品 0
青岛
程序员
android -------- java虚拟机和Dalvik虚拟机

java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚...

切切歆语
04/29
0
0
DVM 初始化 —— 关于Java类的基础知识

DVM,也就是Dalvik,Android4.4之后,还推出了ART,但没有作为默认虚拟机使用,直到5.0才正式作为默认虚拟机使用。可见,一个好的东西是需要经历一些磨难才能出的来的。 我把Java中的类分成两...

刘焱
2014/09/27
0
0
热修复与插件化基础——Java与Android虚拟机

一、Java虚拟机(JVM) 1、JVM整体结构 使用javac将java文件编译成class文件。 类加载器(ClassLoader)将class字节码加载进JVM对应的内存中。 JVM将内存分配给方法区、堆区、栈区、本地方式...

CSDN_LQR
05/13
0
0
[Android 泥水匠] Android基础 之一:浅谈Android架构到HelloWorld案

作者:泥沙砖瓦浆木匠 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节。 如果我的帮到了你,是否乐意捐助一下或请一杯啤酒也好呢?有你支持,干的更好~ 点这参与众筹 我...

泥沙砖瓦浆木匠
2014/12/19
0
1
Android DVM [1]

Dalvik是一个寄存器虚拟机,但它并不是一个完全的Java平台。Android使用Java作为开发语言和Apache Harmony的类库来生成标准的class文件(JVM可执行文件)。Android然后将class文件转译为一个...

开源中国驻成都办事处
2012/04/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

负载均衡的解决方案有哪些

负载均衡器服务可满足大型组织的需求,支持所有数据中心和跨数据中心高可靠性场景。 本地负载均衡,通过附带或者未附带持久性覆盖选项,Incapsula支持各种负载均衡算法,以优化服务器之间的流...

上树的熊
30分钟前
3
0
Java实现在线打开word文档加盖印章/盖章/签名功能

前言: 我们知道,大型一点的OA办公系统都会有很多在线处理office办公文档的需求。其中有一点也基本绕不开,那就是为文档盖章或添加手写签名来保护文档,让被盖章的文档不再被编辑。 在Java中...

山里的红杏
37分钟前
5
0
js控制输入正负数,小数点后保留两位

//限制数字function clearNoNum(obj){ //修复第一个字符是小数点 的情况. if(obj.value !=''&& obj.value.substr(0,1) == '.'){ obj.value=""; } obj.value ...

一直在成长的程序猿
40分钟前
2
0
动态代理

具体场景 为了使代理类与被代理类对第三方有相同的函数,代理类与被代理类一般实现一个公共的interface,定义如下 public interface Subject { void rent(); void hello(String s)...

wuyiyi
44分钟前
2
0
时间字段

我们看看这几个数据库中(mysql、oracle和sqlserver)如何表示时间 mysql数据库:它们分别是 date、datetime、time、timestamp和year。date :“yyyy-mm-dd”格式表示的日期值 time :“hh:...

DemonsI
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部