静态代理是和被代理累实现同样的接口,然后在代理类内部通过组合的方式拥有被代理对象的实例,然后在具体的方法中自定义功能,原有功能依旧调用被代理对象动态代理是java提供了一套api用来动态生成代理对象的过程。