科百科
当前位置: 首页 范文大全

安卓虚拟机有哪些(ios上的安卓虚拟机步骤)

时间:2023-06-02 作者: 小编 阅读量: 3 栏目名: 范文大全

看到Stackoverflow上有个问题在讨论Java和Python的对比,其中就有人问答为啥Java的运行环境被称之为JVM,而Python的只能叫做Interpreter。虚拟机的定义有2个,一种是类似Vmware的系统虚拟机,另一种是虚拟机称之为程序虚拟机,诸如JVM,CLR就是最常见到的虚拟机。当这个进程启动时,虚拟机启动,当进程销毁时,虚拟机销毁。这使得Java字节码既可以被解释执行也可以被编译成机器指令再执行。

看到Stackoverflow上有个问题在讨论Java和Python的对比,其中就有人问答为啥Java的运行环境被称之为JVM,而Python的只能叫做Interpreter。

(题图来自:gfi.com)

这个问题估计想过的人不多,先找维基百科看一下虚拟机的定义。

虚拟机的定义有2个,一种是类似Vmware的系统虚拟机,另一种是虚拟机称之为程序虚拟机,诸如JVM,CLR就是最常见到的虚拟机。

程序虚拟机也称作托管运行时环境,运行这个虚拟机时,就好比普通的OS中的一个进程。当这个进程启动时,虚拟机启动,当进程销毁时,虚拟机销毁。使用虚拟机的目的就是提供一个和平台无关的编程环境。

JVM中的执行引擎只能处理编译后的Java字节码,字节码处理引擎其实包含一个字节码解释器和一个JIT编译器(和.net的CLR中JIT差别很大),解释器逐条的执行字节码指令,速度稍慢。JIT编译器则会将热点代码编译缓存起来,因此执行速度加快。

解释器的概念比较简单,它可以将代码翻译,并运行,不需要经过编译,JVM中的解释器正式这样的,JVM中解释的就是字节码。解释器运行程序的方法有3种:

  1. 直接运行高级编程语言(如Shell内置的解释器)
  2. 转换高级编程语言码到一些有效率的字节码(Bytecode),并运行这些字节码
  3. 以解释器包含的编译器对高级语言编译,并指示处理器运行编译后的程序(例如:JIT)

其中Python的解释器就是属于第二种,Python代码在首次运行时,它会将Python代码编译成字节码,如果可以的话,它会将这个字节码保存到.pyc文件中,这样下次启动的时候就不会再编译这些代码而是直接解释运行字节码。事实上,这种机制正在模糊解释器和编译器之间的界限,或者说是模糊了解释型语言和编译型语言的界限。

通过JVM和解释器的概念澄清,似乎还是不明白为啥JVM就被称为虚拟机,JVM中有运行的是字节码,它可能直接被解释执行,也可能被再次编译成目标语言,Python中的解释器也会先预编译Python代码为字节码,再解释执行。那么到底有啥区别?

很多人参与了讨论,分别从不同的角度去阐述区别。

有人认为虚拟机是和语言无关的,JVM为例,除了Java之外,Scala,Clojure,甚至Python借助于Jython工具,也可以运行在JVM上,而没听说什么语言能有Python解释器解释执行,除了Python。

也有人从语言的类型上,Java为静态类型的语言,而Python为动态语言。这使得Java字节码既可以被解释执行也可以被编译成机器指令再执行。而Python则复杂多了,它虽然让程序员可以不去关注变量的类型,但解释器不得不去推断数据类型,这一定程度上影响性能。

还有观点认为解释器是一个历史遗留术语,现代语言中虚拟机和解释器的分界已经很模糊甚至不存在。

事实上,笔者在《Learning Python》一书中,看到把作者把Python的解释器称为PVM,基于这个事实来讲,本人更认同的是解释器和虚拟机的区别正在越来越小,已经是我中有你,你中有我的地步。独立的分割来看,可能还能区分这几步是解释器行为,这几步是虚拟机的行为,但是作为一个整体来看,两者的区别确实没那么明显。

    推荐阅读
  • 奔驰e级可以改装成s级(新款奔驰e级改装图片)

    关于奔驰E200L:2019款的奔驰E200L于2018年9月开始上市,车身尺寸为5065*1860*1476mm,属于中大型轿车。根据工信部综合油耗所示,E200L的综合油耗仅为6.9L/100km。E200L一共分为4个车型,全系搭载了一款9挡手自一体的变速器,驱动形式包括了后轮驱动和四轮驱动。价格方面,后驱版的E200L为42.48万元,四驱版的E200L为44.88万元。

  • 排骨炖豆角做法(排骨炖豆角做法是什么)

    以下内容大家不妨参考一二希望能帮到您!排骨炖豆角做法将洗干净的豆角切成段。将处理好的排骨剁成小块。将洗好的大葱切段。锅内烧水,倒入排骨,加入料酒和食盐,煮至水温烧开。下入豆角继续煮,水位烧开后捞出备用。锅内烧油,下入葱姜、干辣椒、大料、豆瓣酱,倒入排骨和豆角。添水没过肉块,加入生抽、老抽、食盐、白糖、耗油、料酒和鸡精,转至小锅内。这样美味的排骨炖豆角就做好了。

  • 神秘的池塘介绍(神秘的池塘简单介绍)

    以下内容大家不妨参考一二希望能帮到您!神秘的池塘介绍《神秘的池塘》主要描述了法布尔童年的一个室内小玻璃池塘。法布尔通过描写池塘样貌草光合作用的过程,以及池塘里各种生物的生活习性,生动形象又富有童趣地描绘出了一个小小的池塘生物圈,行文优美,语言朴实清新,运用拟人比喻手法描述池塘的各种生命,使人如临其境,感受自然的神奇美妙和生机盎然。

  • 猎人笔记主要内容概括(猎人笔记赏析)

    为此,他深受广大人民所喜爱与尊重。这时,契尔托普哈诺夫挺身而出维护他,替他化解了尴尬,从那以后,两个人便成为了亲密无间的朋友。聂道漂斯金以感恩的心态敬仰着契尔托普哈诺夫,而契尔托普哈诺夫也把他当成最好的朋友,两个人一起过着并不富裕,但却自由快乐的生活。

  • 小石潭记图简笔画(小石潭记图片手绘简笔画)

    小石潭记小报手抄报法制小报手抄报,我来为大家挑选一些画的好的小石潭记图简笔画?跟着小编一起来欣赏简笔画图片吧!小石潭记图简笔画小石潭记小报手抄报法制小报手抄报

  • 46岁赵本山弟子近况(赵本山力捧的弟子)

    时隔多年,《刘老根3》播出了,这一部有很多老演员已不在,但也有很多新鲜面孔加入,众多年轻演员的加入让这部剧受到了更多年轻人的喜爱。其中,“韩世信”的扮演者红孩可以说是这部剧的清流之一,他外表年轻有朝气,不过年纪轻轻似乎也挺招人“恨”!红孩原名叫陈昆仑,如今33岁,毕业于辽宁省民间艺术团。在2017年,她的妈妈也去世了。不过这侧面也显示出了他精湛的演技,让观众“恨”起来就是那些坏角色的使命呀!

  • 法语各个节日祝福怎么说(我想吃巧克力蛋糕)

    我想吃巧克力蛋糕Bonjouràtous,jem’appelle小象欢迎大家来到每日一句,今天我们要学习的是:Jeveuxprendreungâteauauchocolat.我想吃块巧克力蛋糕Je[ʒə]pron.我。

  • 在王者荣耀里怎么样优化英雄动作(王者荣耀黑科技教程)

    王者荣耀最近火起来了一把3D视角图,猛然发现其实天美所说的模型并不是那么完美,3D视角也是放大几十倍的产物,自然瑕疵也被放大,可谓距离产生美。原来王者荣耀美术也是节俭之人,大乔下身的布料直接就给人家省完了,啥都没穿,福利福利,纯属天美给大家的隐形小彩蛋!王者荣耀本期的黑科技教程已经发完了,大家学会了吗?更多王者荣耀黑科技内容,请关注玉面小白狐!