博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java程序运行机制
阅读量:2167 次
发布时间:2019-05-01

本文共 864 字,大约阅读时间需要 2 分钟。

Java程序运行机制


在探究Java程序的运行机制之前, 我们先了解一下编译型和解释型两个概念

编译型和解释型从字面意思来看, 都有翻译的特征, 其不同点简单来说, 是其时机不同. 接下来通过翻译这一含义举个例子:

假设一个外国人想看中文书, 需要翻译后才能看, 一种方式是通过别人将这本书完全翻译后交给外国人; 另一种方式: 如果该外国人有个翻译官, 外国人想看哪段就给他翻译哪段, 一直跟着外国人进度走,

这两种方式都能让外国人把书看完, 但各有好处和缺点:

  • 对于第一种方式, 外国人回看无需重新翻译, 但如果该书更新内容, 别人就必须将该书从头到尾重新翻译一遍, 代价较大
  • 对于第二种方式, 如果外国人想回看, 翻译官就要重新翻译一遍. 但如果该书更新内容, 翻译官立马就可以翻译对应内容, 节省成本

编译型 (compile)

  • 就类似于将中文书直接翻译为中文版, 进行出售
  • 内部有一个类似翻译的程序称为编译器, 它将java源代码转换成计算机可以执行的代码
  • 执行速度更快, 因为它已经将所有内容都翻译好了, 电脑只管执行就好了, 对操作系统要求较低, 所以开发操作系统一般都是编译型语言去做, 比如C/C++

解释型 (interpret)

  • 性能可能有点损失, 回头需要重新翻译
  • 对网页速度要求不是很高, 边执行边解释

Java运行机制

两种方式的结合:

图片1

  • Java语言编写的程序需要经过编译步骤, 但并不会生成特定平\平台的机器码, 而是生成与平台无关的字节码文件 (class文件). 这种字节码不是可执行的, 必须使用Java解释器来解释执行.
  • 这些字节码不面向任何具体平台, 只面向JVM. 不同平台上的JVM都是不同的, 但它们都提供了相同的接口.
  • Java语言里负责解释执行码文件的是Java虚拟机, 即JVM (Java Virtual Machine)
  • 如此做导致执行效率较低, 但随着硬件的飞速发展, 其速度也在逐渐提升, 所以几乎无关其流程痛痒.
  • DOS命令中, Javac就是编译, Java就是解释

转载地址:http://mpvzb.baihongyu.com/

你可能感兴趣的文章
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机11:Java内存异常原理与实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析3:Spring IOC容器的加载过程
查看>>
Spring源码剖析4:懒加载的单例Bean获取过程分析
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>
Spring源码剖析6:Spring AOP概述
查看>>
Spring源码剖析7:AOP实现原理详解
查看>>