Java程序运行机制

程序语言运行机制

两种编程语言原理

程序员编写的源代码是人类语言,人类可以轻松理解,但是对于计算机硬件(CPU),无法直接执行源程序,因为计算机只能识别某些特定的二进制指令,所以任何程序在运行前都必须将源代码转换成二进制指令。

所谓二进制指令,就是机器码,是CPU能够识别的硬件层面的”代码“,比如单片机有几十条指令,而我们的电脑和智能手机有成百上千条指令。

那么,究竟在什么时候将源代码转换成二进制指令了?不同的编程语言有不同的规定:

  1. 必须提前将所有源代码一次性转换成二进制指令,即生成一个可执行程序(Windows下的.exe文件),比如C语言、C++、Golang、Pascal、汇编等,这种编程语言称为编译型语言,使用的转换工具为编译器。
  2. 有的编程语言可以一边转换一边执行,需要哪些源代码就转换哪些源代码,不会生成可执行程序,比如python、JavaScript、PHP、shell、matlab等,这种编程语言称为解释型语言,使用的工具为解释器。

两种编程语言特点比较

类型原理优点缺点
编译型语言通过专门的编译器,将所有源代码一次性转换成特定平台(Windows、Linux 等)执行的机器码(以可执行文件的形式存在)编译一次后,脱离了编译器也可以运行,并且运行效率高可移植性差,不够灵活
解释型语言有专门的解释器,根据需要将部分源代码临时转换成特定平台的机器码跨平台性好,通过不同的解释器,将相同的源代码解释成不同平台下的机器码一边执行一边转换,效率很低

Java程序运行机制

Java语言是一种比较奇葩的存在,它是半编译半解释型的语言,源代码需要先转换成一种中间文件(字节码文件),然后再将中间文件拿到虚拟机中执行,Java 引领了这种风潮,它的初衷是在跨平台的同时兼顾执行效率。

简单来说Java程序的运行机制

即编写 、编译 、运行 三个步骤。

Java程序运行机制

运行机制主要指编译、运行的过程

  1. 编译

    Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,好让JVM(Java虚拟机)中的解释器可以正常读取。

  2. 运行

分三步:代码的装入、代码的校验和代码的执行

  1. 代码的装入

    JVM控制解释器中的”类装载器“去读取和装载程序所需的类(class的字节码)。然后解释器开始建立类与类之间的关系。

    1. 代码的校验

    字节码校验器进行检查:校验器可发现操作数栈溢出,非法数据类型转换等多种错误。

    1. 代码的执行

    代码执行也分为两种情况

    即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。

    解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作。

    通常采用的是第二种方法。由于JVM规格描述具有足够的灵活性,这使得将字节码翻译为机器代码的工作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值