类加载器的双亲委派和全盘负责机制 怎么感觉 很矛盾啊?

双亲委派是尽量使用父加载器,全盘负责是main类所在的类加载器加载所有的class,那main方法中的String类 是由appClassLoader加载,还是bootstrapClassLoader加载的?

如有帮助,望点赞、采纳!!谢谢


“全盘负责”是指当一个ClassLoader装载一个类时,除非显示地使用另一个ClassLoader,则该类所依赖及引用的类也由这个CladdLoader载入。

例如,系统类加载器AppClassLoader加载入口类(含有main方法的类)时,会把main方法所依赖的类及引用的类也载入,依此类推。“全盘负责”机制也可称为当前类加载器负责机制。显然,入口类所依赖的类及引用的类的当前类加载器就是入口类的类加载器。

以上步骤只是调用了ClassLoader.loadClass(name)方法,并没有真正定义类。真正加载class字节码文件生成Class对象由“双亲委派”机制完成。

https://blog.csdn.net/zhangzeyuaaa/article/details/42499839