class文件加载到内存,再到类卸载出内存会经历7个阶段:加载、验证、准备、解析、初始化、使用、和卸载。
类加载机制的基本特征:
双亲委派模型:找父类加载,父类加载不了再自己加载
可见性:子类可以访问父类加载的类,父类不能访问子类的
单一性:只加载一个
双亲委派模型:
类加载器接到加载类的请求,就委托给父类进行加载,父类加载不了才自己加载。
优点:可以避免重复加载
缺点:父类无法加载子类的类。
如何破坏双亲委派模型:
1、重写loadClass()
2、热部署
3、线程上下文类加载器,能够让父类调用子类进行加载。
实现:接口定义在启动类加载器中,实现类定义在其他类加载器,当启动类加载器需要加载其他子类加载器路径中的类,