双亲委派模型:当类加载器收到类加载请求时,首先不会去加载它,而是将请求传给上传类加载器,直到传递到顶层类加载器(BootStrap),这时顶层类加载器开始处理类加载请求,如果不能成功加载,则传给下一层类加载器执行,依次类推。
Bootstrap Classloader:启动类加载器,由C++编写,java程序不可以直接引用,主要负责加载JAVA_HOME\lib中的类库。
Extensioin Classloader:扩展类加载器,java编写,主要负责加载扩展类库。(xml文件解析类,界面框架类等)。
Application ClassLoader:应用程序类加载器:如果用户没有自定义类加载器,则该加载器就是程序中默认的类加载器。
用户自定义类加载器:加载用户classpath指定的类库。
双亲委派机制的作用:
1.可以防止java核心类库被随意篡改。
2.可以防止类的重复加载,当父类Classloader已经加载了指定类,子类Clasloader就不会在去加载它。