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