初识代理

代理的实现分为:

静态代理:代理类是在编译时就实现好的。也就是说 Java 编译完成后代理类是一个实际的 class 文件。
动态代理:代理类是在运行时生成的。也就是说 Java 编译完之后并没有实际的 class 文件,而是在运行时动态生成的类字节码,并加载到JVM中。

静态代理

Paste_Image.png

动态代理

Paste_Image.png

静态代理的demo

Paste_Image.png

动态代理的demo

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

代理涉及的概念

InvocationHandler接口
代理类调用任何方法都会经过这个调用处理器类的invoke方法。

Proxy
主要用于产生代理类,通过 Proxy 类生成的代理类都继承了 Proxy 类。newProxyInstance方法封装了获取代理对象。
newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h);方法传如的参数可以看出,代理一个对象,必须要要满足这个对象实现一个接口。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容