JVM篇一:Java代码的执行过程

在运行Java程序前应该是先启动Java虚拟机,然后再寻找main方法启动Java程序。

虚拟机启动过程

1

Java程序编译运行过程

java程序执行过程
Complie Time — 前端编译

  1. 编写源代码
  2. 编译器(compiler)检查是否存在编译期错误,如缺少;等问题。若无编译问题,编译器会将源文件翻译成字节码(bytecode).class后缀的文件。
  3. 生成class文件

Run Time

  1. JVM中的( Class Loader )类加载器将字节码文件从硬盘中加载到JVM内存中。
  2. 字节码校验器(bytecode verifier)的内置程序检测是否存在运行期错误(例如栈溢出)。没有错误,字节码校验器将字节码传递给解释器(interpreter).
  3. 解释器(interpreter)将其翻译成机器可以理解的机器码(machine code)—后端编译
  4. 将可执行的机器码交给操作系统,操作系统会以main方法作为入口开始执行程序。

注:JIT的作用是在编译过程中对代码优化,如去掉多余的代码。

代码的编译过程是在程序执行前执行的操作,具体动作就是执行javac命令,如打包成jar包或war包的过程
在这里插入图片描述

**具体的代码编译过程参考 JVM篇,编译原理编译原理 **

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值