一个类加载器在加载类时,先把这个请求委托给自己的父类加载器去执行,如果父类加载器还存在父类加载器,就继续向上委托,直到顶层的启动类加载器。如果父类加载器能够完成类加载,就成功返回,如果父类加载器无法完成加载,那么子加载器才会尝试自己去加载。
加载某个类时会先委托父加载器寻找目标类,找不到再委托上层父加载器加载,如果所有父加载器在自己的加载类路径下都找不到目标类,则在自己的类加载路径中查找并载入目标类。说简单点就是,先找父亲加载,不行再由儿子自己加载
现在,接收方成为了我们的OS。因为自己写的OS是没有加载器的,所以我们需要知道怎么把ELF文件加载到内存中,大概就是简单的加载器原理。
双亲委托模型是Java类加载器的一种工作机制,它定义了类加载器的层次关系以及类加载的流程。该模型的核心思想是在类加载的过程中,一个类加载器在尝试加载某个类时,会首先将加载请求委托给它的父类加载器去完成,直到最终委托给顶层的启动类加载器。如果父类加载器无法加载该类,才会由当前类加载器自己尝试加载。
1.避免重复加载:由于父类加载器的存在,可以避免重复加载某个类。如果一个类已经被父类加载器加载过了,那么子类加载器就没有必要再加载一次。