Android面试补习(一).JVM,DVM,ART虚拟机

        每天都在学习,最近在找找实习工作,在家等待的时候就会复习一下以前的知识,避免太久没接触生疏了,写个博客作为记录吧,每次都会分享一些实用的,易懂的知识,毕竟我们实习生能了解的就这个层次。

        第一篇就是关于虚拟机,有点吊的,不过别怕,知识一些粗浅的了解一下,虽然有的东西我们不必去深入研究,但是了解还是要的。

        因为自己的知识也是从巨人肩膀学习过来的加上自己的理解,如有错误,请指出,如有侵权,请联系QQ87127814作为初学者,对各位表示自己的诚意。

        大家都知道JAVA号称一处编译处处运行,这也是其优势,依靠JAVA虚拟机JVM,把JAVA语言编译成.class字节码文件,JVM在执行这些字节码,把字节码编译成其目前存在的平台能翻译的机器指令执行。

           而DVM是安卓虚拟机,但是大家都知道安卓是JAVA编程,那DVM和JVM的区别呢,首先,大家知道安卓代码编译后的是.dex文件,而JAVA是.class文件,这就是一个区别。 .dex文件执行在DVM虚拟机上,那么.dex和.class有什么不一样呢,其实就是把.class再编译一次。哈哈。   但是最重要的是JVM是基于栈的,而DVM是基于寄存器的,所以在速度方面,DVM是完败JVM的,作为手机平台,这一点是至关重要的。

            那ART是啥,很多人可能没有听过ART,其实他也是一个虚拟机,而且,是为了代替DVM产生的。android5.0的时候ART就替代了DVM,成为了安卓的虚拟机,补充一下,ART是在android4.4发布的。那么替代DVM,说明ART有其更大的优势,这里简单的说一下

DVM:每次运行的时候,字节码都需要通过即时编译系统转换为机器码,所以速度较慢

ART:第一次安装的时候,字节码就会预编译为机器码,之后运行的时候就不需要这样了,启动和速度都会比较快

了解的很肤浅,但是目前是够了,日后有兴趣再深入研究。


你可能感兴趣的:(Android面试补习(一).JVM,DVM,ART虚拟机)