Skip to content

musejianglan/Interview4Android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interview4Android

为Android面试整理的知识树

Java

Android


Dalvik虚拟机与java虚拟机的区别

  1. java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码;传统的Java程序经过编译,生成Java字节码保存在class文件中,java虚拟机通过解码class文件中的内容来运行程序。而Dalvik虚拟机运行的是Dalvik字节码,所有的Dalvik字节码由Java字节码转换而来,并被打包到一个DEX(Dalvik Executable)可执行文件中Dalvik虚拟机通过解释Dex文件来执行这些字节码。

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

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


面试题


Android校招面试指南
Everything you need to know to get the job.
LearningNotes


大部分内容整理自互联网,来源太多无法一一标明;如有侵权,请联系我,马上删除:musejianglan@163.com

欢迎扫描下方二维码或者公众号搜索「musejianglan」关注我的微信公众号

About

为Android面试整理的知识树

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published