jvm中讲过,一个类的创建是要经历类加载器的,那么我们来讲讲如何自定义类加载器。
jvm优先级最高的就是自定义类加载器,为什么这么说呢?我们来看看类加载器的源码:
首先我们解释一下这个方法做了什么,要求返回一个类,在最前面就有一个判断
就是判断我们即将加载的类是否已经被加载过(内存中是否存在) 。
不存在进行加载,再往下面,就有一个链表递归的一个思想:
当后面没有元素时,指针为null。
双亲委派机制就是一直向后查找,直到找到为止(自定义加载器、项目加载器、扩展加载器、根加载器)。
有三个办法可以实现自定义加载器:
继承 ClassLoader类,分别实现
loadClass方法(上面的代码就是用的这个)
findClass方法
线程类的方法