【Java面试笔记:进阶】23.请介绍类加载过程,什么是双亲委派模型?
Java的类加载机制是JVM的核心组成部分,其过程分为三个阶段,并采用双亲委派模型来保证类加载的安全性和一致性。
1.类加载过程
1.加载阶段(Loading)
- 核心任务:查找并加载类的二进制字节流(如.class文件)。
- 具体行为:
- 将字节码数据从不同数据源(如文件系统、网络等)读取到JVM中。
- 将字节码数据映射为JVM认可的数据结构(Class对象)。
- 可以通过自定义类加载器实现自己的加载过程。
2.链接阶段(Linking):
- 验证(
Verification
):确保字节码信息符合Java虚拟机规范,防止恶意代码或不合规代码危害JVM运行。 - 准备(
Preparation
):为类或接口中的静态变量分配内存并设置初始值,但不执行进一步的JVM指令。例如:static int x = 100;
在此阶段x
被赋值为0
。 - 解析(
Resolution
):将常量池中的符号引用替换为直接引用。