Java程序是如何执行的
前言
我们日常的工作中都使用开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通过打
包工具把项目打包成 jar 包或者 war 包,放入 Tomcat 等 Web 容器中就可以正常运行了,但你有没有想
过 Java 程序内部是如何执行的?
执行流程
其实不论是在开发工具中运行还是在 Tomcat 中运行,Java 程序的执行
流程基本都是相同的,它的执行流程如下:
先把 Java 代码编译成字节码,也就是把 .java 类型的文件编译成 .class 类型的文件。
这个过程的大致执行流程:
Java 源代码 -> 词法分析器 -> 语法分析器 -> 语义分析器 -> 字符码生成器 -> 最终生成字节码,其中任何一个节点执行失败就会造成编译失败;
把 class 文件放置到 Java 虚拟机,这个虚拟机通常指的是 Oracle 官方自带的 Hotspot JVM;
Java 虚拟机使用类加载器(Class Loader)装载 class 文件;
类加载完成之后,会进行字节码效验,字节码效验通过之后 JVM 解释器会把字节码翻译成机器码交由操作系统执行。但不是所有代码都是解释执行的,JVM 对此做了优化,比如,以 Hotspot 虚拟机来说,它本身提供了 JIT(Just In Time)也就是我们通常所说的动态编译器,它能够在运行时将热点代码编译为机器码,这个时候字节码就变成了编译执行。Java 程序执行流程图如下:
Java程序是如何执行的相关推荐
- Java面试题16 牛客 以下java程序代码,执行后的结果是()
Java面试题16 牛客 以下java程序代码,执行后的结果是() 1 2 3 4 5 6 7 8 9 10 public class Test { public static void ma ...
- 第 1-1 课:Java 程序是如何执行的?
了解任何一门语言的精髓都是先俯览其全貌,从宏观的视角把握全局,然后再深入每个知识点逐个击破,这样就可以深入而快速的掌握一项技能.同样学习 Java 也是如此,本节就让我们先从整体来看一下 Java 中 ...
- java程序是怎么执行的
java程序是怎么执行的 埋坑待填, 这一篇是总览,然后细化各个部分. java程序的运行过程是开发人员进行代码的开发,然后通过编译器编译成java字节码文件,java虚拟机(jvm)把字节码文件加载 ...
- java怎么运行_不要再问我Java程序是怎么执行的了!
什么是Java虚拟机? 要弄明白Java程序的执行过程首先要了解一下Java虚拟机. 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机有自己完善的硬体架构 ...
- java flv转mp3_用java程序调用ffmpeg执行视频文件格式转换flv
用java小例题说明更直观:(可以直接编译运行) 环境我在windows平台下测试的... 需要在e:/下有ffmpeg.exe;mencoder.exe;drv43260.dll;pncrt.dll ...
- java程序制作 exe执行文件
一.工具准备 1.下载 exe4j: Download exe4j 2.下载innosetup:Inno Setup Downloads 二.IDEA制作可执行jar包 file -> Proj ...
- Java 程序是如何执行的
了解任何一门语言的精髓都是先俯览其全貌,从宏观的视角把握全局,然后再深入每个知识点逐个击破,这样就可以深入而快速的掌握一项技能.同样学习 Java 也是如此,本文章就让我们先从整体来看一下 Java ...
- java程序基础——SQL执行顺序
SQL执行顺序 1.from 2.join 3.on 4.where 5. group by(开始使用select中的别名,后面的语句中都可 以使用) 6.avg,sum.... 7.having 8 ...
- 编写java程序的常见问题_Java程序的编写与执行、Java新手常见的问题解决
原标题:Java程序的编写与执行.Java新手常见的问题解决 今天,我们来写一段Java程序.然后看看Java程序是如何执行的,以及Java新手小白遇到的问题和解决办法. HelloWorld的编写 ...
最新文章
- 地面标识检测与识别算法
- 天堂Lineage(單機版)從零開始架設教學
- 2019 牛客多校第一场 F Random Point in Triangle
- 分布式系统的那些事儿(六) - SOA架构体系
- 如何在 Dapper.NET 中使用事务?
- 任务计划命令 linux,linux执行一次性任务计划at命令
- 一调计算机专业综合理论试卷,一调计算机专业综合理论试卷(盐城)(新编)
- ResourceUtils读取properties文件
- [转]ETL随笔(二)
- MYSQL 用户的操作
- Monte-Carlo算法(基本原理,理论基础,应用实践)
- 计算机语言发展简史,计算机语言发展简史
- 关于Go语言的底层,你想知道的都在这里!
- 注册@MSN.com后缀邮箱的地址
- 正菱台体积在线计算机,正多棱台体积,表面积,棱长,斜高,底面积,质量在线计算器_三贝计算网_23bei.com...
- 计算机编程语言的应用
- 微信小程序快速创建wxml、js、json、wxss新文件
- MFC进度条控件颜色的设置
- UDP协议、UDP和TCP优缺点对比
- 全球与中国半导体晶圆静电卡盘(ESC)市场现状及未来发展趋势
热门文章
- 江苏成人高考低于录取分数10分,能被录取吗
- 上海擎标助力联通(江苏)产业互联网有限公司荣获ISO22301业务连续性体系认证
- android中onclick事件失效,Android中OnClick事件的三种方法
- 创维电器拟在创业板上市:收入主要靠代工贴牌,高度依赖小米系
- 我年轻的时候通过跳槽涨工资
- 矩阵乘积转置规则证明
- PHP函数json_decode的用法,PHP json_decode()用法及代码示例
- IT服务如何产品化?
- SQL 极简核心:算术运算
- pandas中的dropna()函数和np.dropna()函数