---------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
类加载器及委托机制
默认的类加载主要有三个:
BootStrap 加载类的位置 jre/lib/
EctClassLoader 加载类的位置 jre/lib/ext/ //扩展jar包
AppClassLoader 加载类的位置 //自己定义的类
加载顺序:BootStrap ——> EctClassLoader ——>AppClassLoader //加载顺序是从上到下的也被称为委托机制
自定义类.class.getClassLoader().getClass().getName();
工程jdk类.class.getClassLoader().getClass.getName(); //得到类的字节码的加载器的字节码的名字
ClassLoader loader = 自定义类.class.getClassLoader(); //得到类的字节码的加载器//可以通过加载器类的对象的getParent();获得其父类。
编写自己的类加载器时需要用到的知识点:
1.自定义的类加载器必须继承ClassLoader(ClassLoader是一个抽象类)
2.loadClass() //不需要重写,因为这个方法规则了加载器的委托机制
findClass() // 使用指定的名称查找类
defineClass() //将得到的Class文件(二进制数据)转换成字节码
模板设计模式:先从父类中找到需求的解决方法,如果父类中不能解决需求,那么就在子类中实现。
web项目Tomcat服务器上运行 Servlet 类被Tomcat提供的加载器加载
由WebAppClassLoader————加载———>MyServlet————加载————>HttpServelet<————加载————WebAppClassLoader
由ExtClassLoaderr————加载———>MyServlet————加载————>HttpServelet<————加载————ExtClassLoader
--------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------