简而言之就是为了防止与Java固有全类名重复,而导致系统崩坏所设立的机制。
当类加载器接收到加载类的任务时,首先会向上请求,一直请求到引导类加载器,如果引导类加载器无法加载,就会逐层返回让类加载器自己执行,最后就是调用系统类加载器,或者是线程的上下文加载器。
主要还是为了保证安全,和类加载的唯一性。
例如自定义String类,会与系统类重复,基于双亲委派机制就会从根本上拒绝这个访问,项目无法启动,这个也叫沙箱安全机制。
注:两个class被判定为同一class的条件。
1、全类名一致
2、类加载器一致