1.Android虚拟机(Dalvik)和java(VM)虚拟机的区别:
(1)可执行文件:
Android:执行的是.dex文件
java:执行的是标准的字节码(Bytecode)
(2)所基于的内存:
Android:基于寄存器的虚拟机(Register-based)
java:基于栈的虚拟机(Stack-based)
注:
什么是栈?
a.”栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。

b.栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。

c.cpu只从系统给我们自己编写的应用程序所规定的栈入口线性地读取执行指令, 用一个形象的词来形容它就是pipeline(管道线、流水线)。

d.在计算机系统中,栈则是一个具有以上属性的动态内存区域。程序可以将数据压入栈中,也可以将数据从栈顶弹出。在i386机器中,栈顶由称为esp的寄存器进行定位。压栈的操作使得栈顶的地址减小,弹出的操作使得栈顶的地址增大。

e.栈在程序的运行中有着举足轻重的作用。最重要的是栈保存了一个函数调用时所需要的维护信息,这常常称之为堆栈帧或者活动记录

什么是寄存器?
a.寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。

b.寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。

更多相关文章

  1. 用Fiddler抓取Android、Iphone网络数据包
  2. [Android]发布Sqlite数据库
  3. Android中的adapter
  4. Android之Adapter用法总结
  5. Android(安卓)使用adb shell 和android studio插件Database Navi
  6. Android(安卓)开发中 Parcel存储类型和数据容器
  7. [Android] 导入外部数据库
  8. Android的四大组件
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. Android(安卓)market:// 链接到Google Pl
  2. Android(安卓)java代码中如何执行shell命
  3. android 打印堆栈
  4. android 获取网络IP地址
  5. Build Android-C App with NDK
  6. android 状态栏与标题栏一体化
  7. Android获取网络视频文件缩略图
  8. 支持https但不验证证书的HttpClient
  9. Android(安卓)GPS 使用 备忘
  10. Android(安卓)NullPointerException at a