本文共 723 字,大约阅读时间需要 2 分钟。
- 开发人员可以通过继承抽象类java.lang.ClassLoader类的方式,实现自己的类加载器,以满足一些特殊的需求;
- 在JDK1.2之前,在自定义类加载器时,总会去继承ClassLoader类并重写loadClass()方法,从而实现自定义的类加载器,但是在JDK1.2之后已不再建议用户去覆盖loadClass()方法,而是建议把自定义的类加载逻辑写在findClass()方法中;
- 在编写自定义类加载器时,如果没有太过复杂的需求,可以直接继承URIClassloader类,这样就可以避免自己去编写findClass()方法及其获取字节码流的方式,使自定义类加载器编写更加简洁;
关于ClassLoader
- ClassLoader类,它是一个抽象类,其后所有的类加载器都继承自ClassLoader(不包括启动类加载器)
- getParent():返回该类加载器的父类加载器;
- loadClass(String name):加载名称为name的类,返回结果为java.lang.Class类的实例;
- findClass(String name):查找名称为name的类,返回结果为java.lang.Class类的实例;
- findLoaderClass(String name):查找名称为name的已经被加载过的类,返回结果java.lang.Class类的实例;
- defineClass(String name,byte[] b,int off,int len):把字节数组b中的内存转换为一个java类,返回结果为java.lang.Class类的实例;
- resolveClass(Class<?> c):连接指定的一个Java类、;
转载地址:http://kqqzi.baihongyu.com/