什么是双亲委派模型?
Java虚拟机对class文件采用的按需加载的方式,也就是说当需要使用该类的时候才会将它的class文件加载到内存当中,将加载此class文件时,它首先把这个任务委托给他的上级类加载器,如果上级的类加载器没有加载,自己才会去加载这个类,这也属于一种任务委派模式。
工作原理
- 当一个类加载器收到了类加载请求的时候,它并不会自己先去加载,而是把这个请求逐层向上委托,询问此类是否已经加载,自己是否可以加载;如果答案都为否的话,则还会一直向上委派;
- 直至到达最顶层启动类加载器,然后进行反向委派,逐级进行尝试,如果都还加载不了,则会通知加载请求的当前类加载器进行加载;
示意图:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/060cc7c321463a2d7ea7e65beb2b486e.png)