【JVM虚拟机篇07】类加载器

26 阅读1分钟

JVM只会运行二进制文件,类加载器的作用就是将字节码文件加载到JVM中,从而让java程序能够启动起来

类加载器种类

  • 启动类加载器,由C++编写实现,load from JAVA_HOME/jre/lib
  • 扩展类加载器,load from JAVA_HOME/jre/lib/ext
  • 应用类加载器,加载开发者自己编写的java类 load from CLASSPATH
  • 自定义类加载器,实现自定义类加载规则

image.png

双亲委派模型

加载某一个类,先委托上一级加载器进行加载,如果上级加载器也有上级,则会继续委派,如果该类委托上级没有被加载,子加载器尝试加载该类

image.png

JVM为什么采用双亲委派机制

  • 通过双亲委派机制可以避免某一个类被重复加载,当父类已经加载后则无需重复加载,保证唯一性
  • 为了安全,保证类库API不会被修改