对于我们自定义的类加载器来说需要做到两点即可
这个自定义的类加载器继承自ClassLoader
这个类加载器要重写ClassLoader类中的findClass()方法
另外我们还可以参考AppClassLoader...name)
这里有两步操作,
第一个是: 从类路径中读取要加载类的文件内容, 自定义
第二个是: 调用构造类的方法, 调用的系统的defineClass
接下来看看自定义的loadByte是如何实现的...我们知道了,双亲委派机制就是类在加载的时候,从自定义类加载器开始查找是否已经加载过这个类,如果没有加载过则加载类,但是不是由自己立刻加载,而是委托上级加载。...根据双亲委派机制, 我们知道, 他一定是被应用程序类加载器AppClassLoader加载, 而不是我们自定义的类加载器, 为什么呢? 因为他要向上寻找, 向下委托....我们要打破双亲委派机制, 就是要让自定义类加载器来加载我们的User1.class, 而不是应用程序类加载器来加载
双亲委派机制是在ClassLoader类的loadClass(...)方法实现的.