加载原则
双亲委派机制 :
描述 : 当一个类加载器接收到一个类的加载请求时,并不会直接去尝试加载这个类,而是把这个任务交由父加载器去执行,依次递归.只有当父类加载器在其搜索范围内无法找到所需的类,才会以此向下递归,查找可以加载此类的类加载器.
优势 :
1. 对于任意一个类,都需要由加载它的类加载器和这个类本身来一同确立其在Java虚拟机中的唯一性。
2. 比如 Object类,它存在于rt.jar中,无论哪个类都要加载这个类.最终都是委派给了最顶端父类加载器 bootstrap classloader (启动类加载器) 来执行,因此才保证了Object类在各种类加载环境中都是同一个类. 如果不采用双亲委派模式,各个类都是由自己的类加载器来j加载的话,系统中可能会存在多个Object类.导致报错等问题
破坏 :
可以继承classloader类,然后重写loadClass方法. (这里会找到父类加载器,调用父类加载器的loadclass(String name)方法,修改这里来进行破坏)
备注 : 这里这种类加载器的父类不是通过继承来表名关系的 , 而是通过组合 Composition.