简述JVM,DVM,ART
JVM
JVM是Java Virtual Machine的缩写,JVM运行的操作系统之上,屏蔽了底层的实现差异,其本质是一个软件,是对计算机硬件层的软件抽象,使得Java程序编译后在JVM上面运行,实现“Write Once Run Anywhere”。与C语言编译后产生的汇编语言不同的是,Java编译后产生的是JVM字节码,然后JVM把字节码翻译成机器指令,因此JRE(JVM,Java核心库和支持软件)是分平台的。综上,JVM的作用就是把Java编译后的.class文件翻译成与平台对应的机器指令,实现跨平台运行。
DVM
DVM是Dalvik Virtual Machine的缩写,是Google在JVM的基础上针对移动设备做进一步的改动和优化,可以简单理解为Android平台的Java虚拟机。
JVM和DVM的区别
- 对于移动设备来说,Java编译后的.class文件中存在了许多
冗余信息,因此Google在获取.class文件后利用了DEX工具将.class文件转化成.dex文件, 主要的操作有将所有的类文件重新排列,同时将常量