JVM类加载
类加载
加载:查找并加载类的字节码文件
验证:确保加载的字节码是合法且符合 JVM 规范
准备:给类的静态变量分配内存,并赋默认值
解析:符号引用替换为直接引用
初始化:静态变量赋值,执行静态代码块
类加载器
引导类加载器(BootstrapClassLoader):加载 JVM 核心类库(如 rt.jar 中的类),位于 JAVA_HOME/lib 目录下
扩展类加载器(ExtClassLoader):加载扩展类库,位于 JAVA_HOME/lib/ext 目录下
应用程序类加载器(ExtClassLoader):加载用户类路径(ClassPath)下的类
自定义类加载器:可以自定义类加载器加载指定目录下的类。Tomcat就使用了自定义类加载器,打破双亲委派,实现应用类库的隔离。