1.前置知识 类加载器Class Loader
类加载器负责将.class字节码文件读取到内存的方法区中。
类加载器分为四种(前三种是Java虚拟机自带的):
①启动类加载器(Bootstrap ClassLoader),是Platform ClassLoader的父加载器,加载Java的核心类库。
②平台类加载器(Platform ClassLoader),是Application ClassLoader的父加载器,加载Java中相对次要的类。
③应用程序类加载器(Application ClassLoader),是User ClassLoader的父加载器,加载应用级别的类。
④用户自定义类加载器(User ClassLoader),加载用户自定义的类。
2.什么是双亲委派机制?
类加载器遵循双亲委派机制。
当一个类需要被加载时,类加载器依次向上将请求委托给父类加载器,直至顶层的启动类加载器(最终请求都被传送到顶层);如果顶层无法加载,则依次向下由子加载器来尝试加载。
![](https://i-blog.csdnimg.cn/direct/249d3b5325de4ed0857ee5377c4500d0.jpeg)
3.双亲委派机制的意义
双亲委派机制避免了类的重复加载。自上而下的加载过程可以防止恶意代码替换核心Java类,增加了系统的安全性和稳定性。