==================== JDK动态代理_类加载器 ==================== 原始对象 | UserService userService = new UserServiceImpl(); Proxy.newProxyInstance(classLoader, interfaces, invocationHandler); | | | 类加载器 原始对象实现的接口 额外功能 | 创建动态代理类的Class对象 类加载器的作用: - 将类的字节码载入虚拟机 - 创建类的Class对象 User.java ----- 源代码 |编译 v User.class ----- 字节码 |类加载器 v JVM ----- 虚拟机 | v new User() ----- |类加载器 | v | User类的Class对象 | 创建对象 | | v | User对象 ----- 虚拟机会为每个.class文件中的类分配类加载器。 动态代理类没有源代码,借助动态字节码技术直接构建与虚拟机中。 运行时动态生成 代理类的字节码 |动态字节码技术 v JVM / 虚拟机分配的类加载器都是针对.class文件中的类的 |类加载器 - 动态代理类没有.class文件,虚拟机不为其分配类加载器 v \ 通过参数借用随便一个别的类的类加载器 代理类的Class对象 | v 代理对象