Java 类加载机制

目录

1. 什么是 Java 类加载机制?

2. 类的生命周期

3. Java 类加载器(ClassLoader)

ClassLoader 的分类

类加载器的工作原理

4. 类加载代码示例

示例 1:检查类加载器

示例 2:双亲委派模型

5. 类的初始化顺序

6. 类加载的主要特点

7. 总结


Java 类加载机制是 Java 虚拟机 (JVM) 动态加载类、验证类、解析类以及初始化类的过程。Java 通过这种结构化的类加载方式实现了高效的代码组织和模块化。

这篇文章分以下部分介绍 Java 类加载机制以及配套的代码示例:


1. 什么是 Java 类加载机制?

Java 中的类是在程序运行时由类加载器(ClassLoader)动态加载的,类加载器负责根据全限定类名,找到对应的 .class 文件并加载到 JVM 内存中。JVM 提供了一套严格的类加载机制,保证类的加载行为是安全且高效的。


2. 类的生命周期

Java 类的生命周期包括以下几个阶段:

  1. 加载(Loading)

    • 类加载器找到 .class 文件字节码,读取字节流,将其转换为 Class 对象加载到方法区。
    • 每个类只会加载一次。
  2. 连接(Linking)

    • 包含 3 个子阶段:
      1. 验证(Verification):确保字节码文件符合 JVM 规范,安全且合法。
      2. 准备(Preparation):为类的静态变量分配内存,并赋默认值。
      3. 解析(Resolution):将类的符号引用转换为直接引用(比如将接口方法引用解析到具体的实现上)。
  3. 初始化(Initialization)

    • 静态变量初始化,静态代码块执行。
  4. 使用(Usage)

    • 类加载并初始化后,可以正常被程序使用。
  5. 卸载(Unloading)

    • 当某个类不再被使用且没有强引用时,垃圾回收器会卸载类并释放内存。

3. Java 类加载器(ClassLoader)

ClassLoader 的分类

在 JVM 中,类加载器分为以下几种类型:

  1. 启动类加载器(Bootstrap ClassLoader)

    • 又叫根加载器,负责加载核心类库(rt.jar),如 java.lang.* 包、java.util.* 等。
    • 属于 JVM 的一部分,用本地代码实现。
  2. 扩展类加载器(Extension ClassLoader)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值