类加载器:
作用:将字节码文件加载到JVM中,从而让文件能运行起来
类加载器种类:
启动类加载器:用于加载/jre/lib下的jar包
扩展类加载器:用于加载/jre/lib/ext 下的文件,记载扩展类的jar包
应用类加载器:用于加载classpath下,开发者自己写的java类
自定义加载器:实现自定义类的加载
双亲委派模型:
作用:加载某一个类,先委托上级加载器进行记载,如果上级也有上级,那就依次向上委托,直至最顶级,如果加载过中类没有被加载,那就子加载器尝试,直至被加载
优点:1.避免同一个类被重复加载
2.为了安全,保证类库API不会被修改
类装载的执行过程
一共七个阶段
加载:查找导入class文件
验证:验证文件的准确性
准备:为类变量分配内存,设置类变量的初始值
解析:把类中的符号引用转换为直接引用
初始化:对类的静态变量,静态代码块执行初始化操作
使用:jvm开始从入口方法开始执行代码
卸载:程序执行完之后,jvm开始销毁创建的class对象