Java 类的加载过程图

一、Java类的加载过程如下:

1、.java 代码源文件 经过 javac命令编译成 .class字节码文件

2、java命令运行 .class文件,触发类加载

  • 加载:将字节码文件转换成二进制流加载到内存中,并生成一个代表该类的 java.lang.Class文件。(一个类对应一个java.lang.Class 对象
  • 连接:
    1. 验证:验证加载的class文件字节流是否符合当前虚拟机的要求。例如:文件格式验证、元数据验证、符号引用验证等。可以考虑使用 -XVerify:none关闭大部分的类验证措施,缩短JVM的类加载时间
    2. 准备:主要是对静态变量在方法区分配内存,并进行默认初始化
    3. 解析:将常量池中的符号引用改成直接引用
  • 初始化:真正执行类中定义的Java代码,进行所有静态变量和静态代码块的赋值动作

二、触发Java类加载的时机:(一个类只会被加载一次

1、new创建对象

2、子类加载触发父类加载

3、调用静态成员

4、通过反射动态加载

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值