引言


除了以上虚拟机自带的加载器外,用户还可以定制自己的类加载器。Java提供了抽象类java.lang.ClassLoader,所有用户自定义的类加载器都应该继承ClassLoader类。
关于Launcher类

ClassLoader的主要方法
- 抽象类ClassLoader的主要方法:(内部没有抽象方法)
- public final ClassLoader getParent()
- 返回该类加载器的超类加载器
- public Class<?> loadClass(String name)throws ClassNotFoundException
- 加载名称为name的类,返回结果为java.lang.Class类的实例。如果找不到类,则返回ClassNotFoundException异常。该方法中的逻辑就是双亲委派模式的实现。
- 调用了findClass方法
protected Class<?> loadClass(String name, boolean resolve)
throws ClassNotFoundException
{
synchronized (getClassLoadingLock(name)) {
// 同步锁
// 首先,在缓存中判断是否已经加载同名的类
Class<?> c = findLoadedClass(name);
if (c == null) {
long t0 = System

最低0.47元/天 解锁文章





