概念
按照类加载器的层级关系逐层进行委派,比如说当我们需要加载一个class文件的时候,首先会去把这个class文件的查询和加载委派给父加载器去执行,如果父加载器都无法加载,那么再尝试自己来加载这样一个class。
好处
安全性:
因为这种层级关系,实际上代表的是一种优先级,也就是说所有的类加载优先要给到Bootstrap ClassLoader,那么对于核心类库中的一些类,就没有办法被破坏,比如说自己写一个java.lang.String,最终还是会交给启动类加载器,再加上每个类加载器的本身的一个作用范围,那么自己写的java.lang.String,就没有办法覆盖类库中的类
避免重复加载:
避免重复加载,导致程序混乱,因为如果父加载器已经加载过了,那么子加载器就没有必要再去加载了
扩展
类加载机制:
代码运行必须要经过编译和类加载这两个阶段。
编译过程:
就是把.java文件编译成.class文件
类加载过程:
就是把.class文件加载到JVM内存里面,装载完成以后会得到一个Class对象,我们就可以使用new关键字来实例化这个对象,类的加载过程需要涉及到类加载器。