Java中类加载器的代理模式是为了保证Java核心库的安全。通过代理模式,对Java核心库的类的加载工作由引导类加载器来统一完成,保证了Java应用所使用的都是同一个版本的核心库的类,是互相兼容的。
判断两个类是否相等?
1.类名一致(包名+类名)
2.由同一个类加载器加载
不同类加载器的类之间是不兼容的(不仅是不同类型的类加载器,还包括同一个类加载器的不同实例),这就相当于在Java虚拟机内部创建了一个个
相互隔离的Java类空间。这种技术在许多框架中都被用到。
两种机制,双亲委托模型和缓冲机制(若已加载,直接返回)
双亲委托机制是可以被“被破坏”的。
重写findClass()方法可以覆盖默认类加载器的双亲委托机制、缓冲机制。
如果重写loadClass()方法,则实现逻辑理炙复杂。