Java编译到执行的过程

本文详细介绍了Java从编译到执行的四个主要步骤:编译、加载、解释和执行。在编译阶段,Java源码经过语法分析、语义分析等处理生成字节码文件。加载阶段包括装载、连接(验证、准备、解析)和初始化。装载时,类加载器按需加载并遵循双亲委派机制。解释阶段,字节码被转化为操作系统可识别的指令,而执行阶段则是操作系统执行这些指令。
摘要由CSDN通过智能技术生成


前言

我们都知道java是编译为class文件,然后在jvm中运行的,我认为有4个步骤:编译->加载->解释->执行


一、编译

编译器对java源码做「语法分析」「语义分析」「注解处理」等等处理,然后生成字节码(class)文件。eg: Lombok。

二、加载

将class加载到jvm。(装载->连接->初始化)

1.装载

1.【装载时机】jvm为了节省内存,不会一次性装载全部的类,而是需要时,才装载。
2.【装载发生】class通过「类加载器」装载到jvm,为防止重复,采用双亲委派机制。
3.【装载规则】jdk本地方法由根加载器(Bootstrap loader)装载;
jdk内部扩展由扩展类加载器(ExtclassLoader)装载;
程序中的类由系统类加载器(AppClassLoader)装载;
此外还有自定义类加载器。
装载的具体内容:
1.找到class的二进制文件;
2.在「堆」中创建对象;类相关信息存入「方法区」;

2.连接(验证->准备->解析)

对class进行验证,为「类变量」分配内存空间;同时赋默认值。

1.验证

class是否符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值