java类加载过程
2026-01-04 01:25:32 0 举报
Java类加载的三个过程分别为加载 (Loading)->链接 (Linking) ->初始化 (Initialization)。
作者其他创作
大纲/内容
自底向上查找判断类是否被加载
java源码com.Cat.java
通过Java.lang.ClassLoader的子类自定义加载Class
JVM 将常量池内的符号引用替换为直接引用的过程。
Java运行
自定义加载类1(Custom ClassLoader)
加载(Loading)
卸载
负责java平台核心库,用来加载核心类库。加载 JRE\\lib\t.jar 或者Xboot classpath选型指定的Jar包
自定义加载类3(Custom ClassLoader)
使用
javac编译
自顶向下尝试加载类
初始化(initialization)
准备(Preparation)
全生命周期
扩展类加载器(Extension ClassLoader)
应用类加载器(Application ClassLoader)
自底向上委托其父类加载类任务
字节码文件com.Cat.class
引导类加载器(BootstrapClassLoader)
为类的静态变量分配内存,并设置默认初始值。
加载 JRE\\lib\\ext\\*.jar 或者-D java.ext.dirs 指定目录下的Jar包
连接(Linking)
自定义加载类2(Custom ClassLoader)
解析(Resolution)
类加载三阶段
验证(verification)
加载 -classpath或者-D java.class.path指定的目录下的Jar包,是最常见的加载器
确保 .class 文件的字节码是合法,符合JVM规范,防止恶意代码破坏JVM。检查魔数、版本号、元数据、字节码逻辑等。例如,检查是否有非法跳转、类型错误等
0 条评论
下一页
为你推荐
查看更多