JDK动态代理实现机制
=========================================== 原文链接: JDK动态代理实现机制 转载请注明出处! =========================================== 本文只对JDK动态代理的底层实现进行分析,如需了解代理模式和动态代理的使用请移步: 设计模式—代理模式 动态代理的两种实现方式(JDK/Cglib) 在读代码之前先清楚两个概念: 1、Class类存储的是类的所有信息,包括类的所有方法、属性、实现接口等。每个类对应一个Class对象(单例),Class对象是由classLoader加载出来的,使用双亲委派模型来保证class只会被加载一次。 2、classLoader在加载类的时候不管class文件是从哪里来的,无论是从.class文件、网络、数据库类加载器都不关心。他只关心给他的class二进制流是不是能够通过校验。 说明:以下测试代码和 动态代理的两种实现方式(JDK/Cglib) 相同 使用JDK动态代理需要实现 InvocationHandler 接口,同时实现invoke()方法。 package com.zpj.proxy.jdk; import java.lang.reflect.InvocationHandler; import java.lang.reflect