「JVM 类加载子系统」系列文章

自定义类加载器

对于类加载器,我们知道重点是loadClass方法, 双亲委派模型也是在loadClass方法里面实现的。loadClass方法里面实际上去加载类的是findClass方法。对于我们自定义的类加载器来说需要做到两点即可

第一步:继承 ClassLoader 类

自定义类加载器继承自ClassLoader抽象类,然后定义一个构造方法,用来接收要加载的类名

第二步:重写 findClass 方法

第三步:测试

注意:测试 class 文件不能放到类路径下,不然会被应用程序类加载器加载!!

这里有一个问题,为什么自定义类加载器的父类加载器是 AppClassLoader??

首先,自定义类加载器继承ClassLoader,调用自定义类加载器的构造函数之前会先去调用ClassLoader的无参构造函数