1. 作用

类加载器是JVM执行类加载机制的前提

ClassLoader的作用:
ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,
ClassLoader负责通过各种方式将Class信息的二进制数据流读入JVM内部,转换为一个目标类对应java.lang.Class实例对象,然后交给JVM虚拟机进行 记载—>链接(验证->准备->解析)—>初始化—>使用—>卸载
因此, ClassLoader在整个装载(验证—>准备—>解析)阶段, 只能影响到类的加载,而无法通过ClassLoader去改变类的链接和初始化行为. 至于是否可以运行,则由Execution Engine决定的
image.png

2.类加载的显式加载和隐式加载

类的加载分类: 显式加载VS 隐式加载

class文件的显式加载和隐式加载的方式是指JVM加载class文件到内存的方式

  • 显式加载: 指的是代码中通过调用ClassLoader加载class对象, 如直接调用Class.forName(“”)或者this.getClass().getClassLoader().loadClass()加载class对象.
  • 隐式加载: 则是不直接在代码中调用ClassLoader的方法加载class对象,而是通过虚拟机自动加载到内存中,如加载某个类的class文件时,该类的class文件中引用了另外一个类的对象,此时额外引用的类的将通过JVM自动加载到内存中.