虚拟机

1、概述

    程序运行在CPU上的,而CPU的架构却是多种多样的(例如ARM、ARM64、x86、x64,MIPS等等),CPU架构不同,那么CPU的指令集和执行方式也就不同。但是一个程序总不能只运行在某一种架构的CPU上吧,我们希望应用程序可以运行在各种CPU上。那么,这个问题就有几种解决思路了:
    思路1:针对不同的CPU架构,将程序编译成对应CPU的机器码文件。假设我们的app要同时支持ARM和x86架构的手机,那么你就要为这两种手机各编译一个安装包,而且他们之间不能互换。
    思路2:当java这种虚拟机语言出现后,人们就多了一个选择。在程序和硬件之间增加一个虚拟层,让程序运行在虚拟层里面,虚拟层运行在硬件上面,那么程序员再也不需要去关心各种各样的CPU架构了的底层实现了,把这个工作交给虚拟层,被称为虚拟机。
    java当年提出的口号:“一次编码,到处运行”,在虚拟机的帮助下就实现如下图的效果:
    上面提到的就是java虚拟机JVM的由来,是java跨平台性质的体现。而Android操作系统在JVM的基础上做出了一下改变,基本上就是将JVM搬到了移动设备上,但是由于移动设备资源受限的特殊性(电池、内存、CPU的运算力以及功耗等等都是受限的),造成了Android虚拟机和JVM还是有着很大的区别的。

2、字节码













全部评论

相关推荐

酷酷的喜马拉雅山:感觉这比一直在初筛不动的好多了
点赞 评论 收藏
分享
也许是天气_:实习这块全是假大空像AI生成的,没有实际内容。要体现出难点、亮点、解决问题的过程
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务