前言
此博客仅为个人理解,如有出错地方欢迎指出
一、类加载过程
加载:通过IO读取字节码文件.class文件,使用类时才会进行加载验证:校验字节码文件的正确性,识别class文件中特定格式
准备:给类的静态变量分配内存,并赋予默认值。这里的默认值是指例如int类型默认值是0,而不是你想赋予静态变量的初始值
解析:将符号引用替换为直接引用,例如方法名、关键字等都是属于符号,直接引用就是就在内存中指针地址。
初始化:对静态变量进行初始化赋值,执行静态代码块
使用:使用类
卸载:使用完后从虚拟机中销毁
二、类加载器
类加载器分为4种:1.引导类加载器:负责加载支持JVM运行的JRE的lib目录下的核心类库。可以自己打开JDK文件看看
2.扩展类加载器:负责加载支持JVM运行的JRE的lib目录下的ext文件中JAR包
3.应用类加载器:负责加载ClassPath路径下的类包,就是你自己所写的类
4.自定义类加载器:负责加载自己自定义路径下的类包