java类加载过程
2025-10-20 13:01:52 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)
类加载三阶段
类的Class对象
验证(verification)
加载 -classpath或者-D java.class.path指定的目录下的Jar包,是最常见的加载器
类加载后内存布局情况
确保 .class 文件的字节码是合法,符合JVM规范,防止恶意代码破坏JVM。检查魔数、版本号、元数据、字节码逻辑等。例如,检查是否有非法跳转、类型错误等
0 条评论
下一页