Java语言运行机制

Java语言的运行机制

  1. 编译型语言
    这指的是,通过一个编译器软件,把源文件转化为可执行文件。 可执行文件的内容,就是一些机器指令,以及相关的一些数据。在 Windows 中,可执行文 件往往以.exe 作为后缀名。在执行程序的时候,不需要源代码文件,只需要可执行文件即可。 示意如下: 源文件 – 编译器–> 可执行文件 运行可执行文件 --> 机器指令

  2. 解释型语言
    解释型语言需要一个解释器软件,这个软件会读源 文件,在读文件的过程中,同时完成将源文件内容翻译成机器指令以及执行的过程。换句话 说,解释器将读取源文件、翻译成机器指令、执行指令这三步同时完成。示意如下: 文本文件 —解释器-> 直接翻译成机器指令

  3. 区别
    编译型语言在将源文件编译成可执行文件之后,运行程序只需要可执行文件, 不再需要重复编译的过程。而解释型语言每次运行时必须重复翻译源文件,因此从运行效率 上来说,解释型语言远远不如编译型语言。
    解释型语言也有自己的优势:跨平台性较好。由于编译型语言运行时只需要可执 行文件,而可执行文件又与平台紧密相连,这也就意味着,对于不同的平台,必须要有不同 的可执行文件才行。而相对而言,解释型语言就没有这么麻烦,对于不同的平台,只需要有 不同的解释器就可以了,源代码几乎不用进行修改

  4. Java语言
    Java 语言,则兼具有编译型和解释型两种语言的特点:Java 语言运行时,采用的是 先编译、后解释的方式运行。
    首先,Java 源代码要写在后缀名为.java 的源文件中。然后,通过一个编译器,编译生 成.class 文件,这个文件被称为“二进制字节码文件”。
    而.class 文件并不能够直接在机器上执行。执行.class 文件,需要一个解释器,这个解释 器会把.class 中的指令翻译成真正机器上的指令。也就是说,需要解释执行.class 文件。
    示意如下: .java 源文件 – 编译 --> .class 字节码文件 – 解释执行 --> 真正的机器指令
    字节码文件是平台中立的,也就是说,运行在不同平台上的.class 文件内容相同,与所 在平台无关。
    那么.class 文件中保存的是什么内容呢?
    这个文件中保存的也是计算机指令,所不同的 是,这些计算机指令不是真实计算机所拥有的指令,而是一些虚拟的指令。在解释执行.class 文件的指令时,为了能让这些虚拟的计算机指令能够转换成真正的计算机指令,我们需要一 个 Java 虚拟机(Java Virtual Machine,简称 JVM)。 JVM 事实上是一个软件,这个软件为 Java 程序模拟出一个统一的运行环境。Java 程序只 需要适应这个虚拟的环境,而与底层真正的硬件环境及操作系统环境无关。
    换句话说,JVM 的作用在于,它屏蔽了底层不同平台的差异。
    Java 虚拟机接收.class 文件中的虚拟指令,这些指令很类似于真正的汇编语言指令,但 这些指令与底层的操作系统平台和硬件平台无关,完全是另外设计出的一套独立体系。而不 同平台下的 Java 虚拟机,在执行时,会把.class 文件中的虚拟机指令翻译成对应平台上真正 的计算机指令。
    因此,我们可以修改上面的示意如下: .java 源文件 – 编译 --> .class 字节码文件 –在 JVM 中解释执行–> 真正的机器指令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值