JVM只会运行二进制文件,类加载器的作用就是将字节码文件加载到JVM中,从而让java程序能够启动起来
类加载器种类
- 启动类加载器,由C++编写实现,load from JAVA_HOME/jre/lib
- 扩展类加载器,load from JAVA_HOME/jre/lib/ext
- 应用类加载器,加载开发者自己编写的java类 load from CLASSPATH
- 自定义类加载器,实现自定义类加载规则
双亲委派模型
加载某一个类,先委托上一级加载器进行加载,如果上级加载器也有上级,则会继续委派,如果该类委托上级没有被加载,子加载器尝试加载该类
JVM为什么采用双亲委派机制
- 通过双亲委派机制可以避免某一个类被重复加载,当父类已经加载后则无需重复加载,保证唯一性
- 为了安全,保证类库API不会被修改