简单来说Java程序的运行机制分为编写、编译和运行三个步骤。

1.编写

编写是指在Java开发环境中进行程序代码的编辑,最终生成后缀名为“.java”的Java源文件。

2.编译

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

3.运行

运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java源文件由Java编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的Java解释器来解释执行,因此Java是一种在编译基础上进行解释运行的语言。

在运行Java程序时,首先会启动JVM,然后由它来负责解释执行Java的字节码,并且Java字节码只能运行于JVM之上。这样利用JVM就可以把Java字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对于特定具体平台的JVM,Java程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。JVM把这种不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM是Java平台无关的基础,Java的跨平台特性正是通过在JVM中运行Java程序实现的。接下来了解一下Java的运行流程,如图所示。

Java运行流程

图中,从编写出来的Java源文件,到编译为字节码文件,再到通过JVM执行程序,然后将程序的运行结果展示给用户,这是一个完整的Java运行流程。

Java程序的运行机制相关推荐

  1. java程序的运行机制详细分析

    转自:http://hi.baidu.com/suny_duan/blog/item/074f9afb09f08c9b58ee901b.html JVM(Java虚拟机)一种用于计算设备的规范,可用不 ...

  2. 1.3.2 java程序的运行机制和jvm

    为什么80%的码农都做不了架构师?>>>    java语言比较特殊,由java语言编写的程序需要经过编译步骤,但这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节 ...

  3. Java程序的运行机制和JVM

    Java语言比较特殊,由Java语言编写的程序需要经过编译步骤,但这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(*.class文件).当然,这种字节码不是可执行的,必须使用J ...

  4. 论Java程序的运行机制

    低级语言就是计算机易于理解而人不易理解的,如汇编语言之类的. 高级语言与之相反易于人理解,接近于自然语言. ,如目前流行的Javac,c++,pascal,python,lisp,prolog,Fox ...

  5. Java编译的运行机制初步讲解

    简单来说Java程序的运行机制分为编写.编译和运行三个步骤. 一.Java编写文件格式 编写是指在Java开发环境中进行程序代码的编辑,最终生成后缀名为".java"的Java源文 ...

  6. java程序代码的运行机制_1.4Java程序的运行机制

    Java 程序的运行必须经过编写.编译和运行 3 个步骤. 编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件. 编译:是指使用 Java 编译器 ...

  7. 《Java疯狂讲义》(第3版)学习笔记 2 - Java语言的运行机制

    内容 1.高级语言的运行机制 2.Java 语言的运行机制 1.高级语言的运行机制 高级语言主要分为编译型语言和解释型语言两类. 编译型语言是指使用专门的编译器.针对特定平台(操作系统)将高级语言源代 ...

  8. Java教程:Java程序的运行过程(执行流程)分析

    Java教程万事知其然,要知其所以然,所以本节带大家来详细了解一下 Java 程序的执行过程. 本篇文章由 泉州SEO www.234yp.com 整理发布,Java教程 www.234yp.com/ ...

  9. 【剧前爆米花--爪哇岛寻宝】初识Java,了解Java代码的运行机制及JDK,JRE,JVM等

    作者:困了电视剧 专栏:<JavaSE语法与底层详解> 文章分布:这是一篇知识点较为基础的文章,我会先将JavaSE相关的知识给罗列一遍,然后在后续的文章中会对其中重要的点再逐一进行底层剖 ...

最新文章

  1. vue ajax highcharts,在vue项目中引入highcharts图表的方法(详解)
  2. Turbo Intruder 使用 - 拥抱十亿请求攻击
  3. ASP.NET页面揭秘之页面生命周期【转】
  4. Java数据库篇9——备份与还原、忘记密码
  5. 跨站脚本攻击之反射型XSS漏洞【转载】
  6. java.net.URLEncoder 、URLDecoder 编码与解码
  7. matlab与焓湿图,湿空气性质与焓湿图应用
  8. BCM94360CD+linux+驱动,BCM94360CD WINDOWS驱动(32+X64位)
  9. 计算机共享打印怎么设置密码,共享打印机需要密码的解决方法
  10. 神经网络方法研究及应用,神经网络算法应用案例
  11. 基于51单片机的四位共阴数码管秒表proteus仿真
  12. 分类数据cotegory介绍以及常用API的属性和方法
  13. PE文件感染程序设计(PE病毒)
  14. 计算机缺少opencl.dll,Windows10系统下Opencl.dll无法修复的解决方案
  15. 【解题报告】2017-2018 8th BSUIR Open Programming Contest-C Good subset 线性基+线段树
  16. 以前写的一些老的验证脚本
  17. HTML链接:带超链接的网页
  18. 权威杂志评选出的十个最伟大的公式
  19. Use host networking
  20. 谁是最近三年全球服务器市场最大的赢家? 你想不到

热门文章

  1. 物流管理需求概要图和脑图
  2. win10本地安装及连接oracle 19c数据库
  3. 四月热点,看这篇就够了
  4. 第10章 MySQL 创建数据表教程
  5. windows11下安装Scoop和lux(annie)
  6. 「轮子」是什么东西?创造它有什么意义?
  7. EA免费开放的智能交易
  8. 微信上历史记录功能开发
  9. 24、Pyqt 打开视频,关闭视频及眨眼睛次数统计
  10. Freeswitch操作基本配置