动态代理其实是Proxy类使用静态方法生成了一个新的类
这个静态方法需要传进三个参数:
第一个参数:是类加载器这里就是理解为提前把字节码文件写入虚拟机中,因为Java的类是懒加载的,不然是生成不了动态代理类的
第二个参数:是需要实现的接口,这里理解是为了保证有被代理类同样的功能,也是一种规范.
第三个参数:是一个实现InterfaceInvocationHandler接口的类
这里使用匿名内部类更快捷
理解:实现InterfaceInvocationHandler接口的类实际是拦截了动态代理类的实例所有的方法,个人理解是这里是最终代理类实现的效果(其实是拦截了之后添加新的功能)
在第三个参数中还需要实现一个方法
动态代理类实例方法进行拦截,最终效果,可以把被代理类的方法和参数传进去
可以用反射获取被代理的参数和方法。
个人笔记理解 可能有误