浅析 Java 程序语言的运行机制

浅析 Java 程序语言的运行机制

Java 程序语言的运行机制

Java 是一门高级语言,它既包含解释型语言的特征, 也具有编译型语言的特征。因为 Java 应用程序是需要先经过编译,再进行解释两个步骤。

解释型和编译型

计算机按照程序的执行方式可以分为解释型和编译型。

解释型语言(Interpreted language)

这种类型的编程语言,会将代码一句一句直接运行,不需要像编译语言(Compiled language)一样,经过编译器先行编译为机器代码,之后再运行。这种编程语言需要利用解释器,在运行期,动态将代码逐句解释(interpret)为机器代码,或是已经预先编译为机器代码的子程序,之后再运行。

理论上,任何编程语言都可以是编译式,或解释型的。它们之间的区别,仅与程序的应用有关。许多编程语言同时采用编译器与解释器来实现,其中包括 Lisp,Ruby,JavaScript 与 Python。JAVA 及 C# 采用混合方式,先将代码编译为字节码,在运行时再进行解释。

编译型语言(Compiled language)

这类型的编程语言,通过编译器来实现。它不像解释型语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器代码,再加以运行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。

两者的优缺点

一般而言,用编译语言写成的程序,在运行期的运行速度,通常比用解释型语言写的程序快。因为程序在编译期,已经被预先编译成机器代码,可以直接运行,不用像解释型语言一样,还要多一道直译程序。

但是要先进行编译,之后才能运行程序,这也造成了编译语言的缺点。一般而言,编译语言的程序开发速度,以及调试时间,都是比较长的。因为它不像解释型语言可以写完一行,或一小段程序之后,马上运行,马上调试。解释型语言通常让程序开发的整体时间变少,在开发过程中,程序开发人员也可以更弹性、快速的测试自己的想法。

为了改善编译语言的效率而发展出的即时编译技术,已经缩小了这两种语言间的差距。这种技术混合了编译语言与解释型语言的优点,它像编译语言一样,先把程序源代码编译成字节码。到运行期时,再将字节码直译,之后运行。Java 与 LLVM 是这种技术的代表产物。

Java 的运行机制和 JVM

Java 语言相对于独立的解释型和编译型, 又有一些不一样。区别在于编程器编译的不是最终可以运行的机器语言, 而是能够运行在 Java 虚拟机 ( JVM: Java Virtual Machine)中的字节码。Java 虚拟机只要是用来运行 Java字节码文件的虚拟机。不同的平台上编译器提供了统一的编程接口,而 Java 编译器只需要面向 Java 虚拟机, 生成虚拟机能够运行的代码。 然后由 Java 虚拟机解释执行,并且在虚拟机中把代码转换成平台能够识别的机器码来运行程序, 从而做到了一次编译, 多个平台运行的跨平台特性。

流程大概如下:

这里 JVM 也就是 Java 虚拟机中介的概念。 原先你要去租房, 你有一个要租房的“需求”(源代码), 而每个房东都是你的“运行”环境。 没看一次房子都需要单独的找到对应房子的房东进行 “租”(编译) 的过程。 这个时候, 有个房屋托管(虚拟机)说, 你不要找房东了太麻烦, 我这有这个区的“房源”, 你来找我就好, 这样你以后租房子就可以只找这个中介就可以看这个区的房子, 这样的话, 你不用来回和不同的房东打交道, 你也不需要知道这些房东是男是女, 是好说话还是不好说话。 但是既然是中间打的交道, 就需要有一些性能的损耗(佣金)。并且你能看多少套房子,就取决于中介有多少房源。 也就是 Java 虚拟机能在那运行, 你的程序就可以在那运行。

JVM

JVM 是 Java Virtual Machine 的缩写。它是一种基于计算设备的规范,是一台虚拟机,即虚构的计算机。

JVM屏蔽了具体操作系统平台的信息(显然,就像是我们在电脑上开了个虚拟机一样),当然,JVM 执行字节码时实际上还是要解释成具体操作平台的机器指令的。

通过 JVM,Java 实现了平台无关性,Java 语言在不同平台运行时不需要重新编译,只需要在该平台上部署 JVM 就可以了。因而能实现一次编译多处运行。(就像是你的虚拟机也可以在任何安了 VMWare 的系统上运行)。

JVM结构

  • 程序计数器(Program Counter)
  • Java堆(Heap)
  • Java虚拟机栈(Stack)
  • 本地方法栈(Native Stack)
  • 方法区(Method Area)
郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
用户投稿
上一篇 2022年7月2日 23:15
下一篇 2022年7月2日 23:15

相关推荐

  • 京东快递跨省几天能到(京东一般多久到货)

    由于觉得京东平台的物流效劳十分的不错,而且商品的质量都比拟有保证。在京东平台购物的话,普通多久时间会到货?下面的内容停止引见。 京东普通多久到货? 详细要看发货地址和你所在的地址的…

    2022年11月26日
  • 游戏平台有哪些(游戏平台有哪些)

    简要回答 游戏平台指的是多人通过互联网在线游戏的平台,例如qq游戏,联众世界,浩方电竞平台,VS竞技游戏平台等,只要你下载平台,下载相关游戏,就能实现对战,摆脱了局域网的限制。 详…

    2022年11月25日
  • 淘宝直播库存哪里拿货(淘宝哪里看库存)

    近年俩直播带货越来越火爆,抖音、淘宝、拼多多等平台都有直播带货功能,其中淘宝直播时主流带货平台,一些小伙伴也纷纷加入,但是作为新手不知道淘宝直播库存哪里拿货?下面小编为大家带来淘宝…

    2022年11月25日
  • 淘宝直播没有货源怎么解决(淘宝直播没有货源怎么办)

    淘宝是很多人喜欢的购物【平台,里面的活跃用户很多,流量很大,所以不少商家在上面开店,为了提高销量也会开通直播带货,也有一些主播没有货源,那么淘宝直播没有货源怎么解决?下面小编为大家…

    2022年11月25日
  • 4308米!“探索二号”科考船携深海浮游式作业平台完成海试

    近日,我国“探索二号”科考船携深海浮游式移动作业平台与中继器,赴南海开展海上试验。该平台完成了1500米级、2500米级、4500米级三个由浅到深级别的海试验证,最大工作深度达到4…

    2022年11月25日
  • 手机上怎么买世界杯彩票(手机上怎么买世界杯输赢)

    现在手机已经成为大家生活中非常重要的工具之一,只要一部手机就可以解决衣食住行,最近世界杯火热进行,一些小伙伴想要买彩票,那么,手机上可以买世界杯彩票吗?世界杯买球软件是真的吗?手机…

    2022年11月25日
  • 博客营销的3大优势解析(博客营销怎么做)

    不知不觉已经写了24篇文章,加上这篇是第25篇了,都是自己这几年来用过的营销方法,如果遇到有些不懂的,我会咨询我的朋友和同事帮忙,尽量让每一篇有价值,哪怕是对大家有一点点帮助也行,…

    2022年11月25日
  • 闲鱼上卖货怎么快速赚钱(闲鱼卖货怎么快速卖出)

    闲鱼这个平台由于主要是做二手交易的,因此入驻门槛要比其他电商平台低很多,而且流量也比较大。所以现在选择在闲鱼上卖货的人也是比较多的,只要你选择好卖的产品,一般人都是可以在闲鱼这个平…

    2022年11月24日
  • 淘宝直播平台抽成多少(淘宝直播平台抽成比例)

    随着时代的发展,现在直播带货已经成为主要带货方式,其中淘宝是主流带货平台,不少人在上面直播带货赚钱,一些小伙伴也想加入,那么淘宝直播平台抽成多少?下面小编为大家带来淘宝直播平台抽成…

    2022年11月24日
  • 2022世界杯免费直播平台有哪些(2022世界杯免费直播平台)

    世界杯近期的人气超级火爆的,大家虽然不能去现场观看卡塔尔世界杯比赛,不过国内的球迷也都第一时间通过世界杯了解赛事情况。2022世界杯免费直播平台有哪些?据悉本届世界杯国内的直播平台…

    2022年11月24日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息