Java 代理模式高频面试题及详细答案(真实面试版).docxVIP

  • 0
  • 0
  • 约4.75千字
  • 约 7页
  • 2026-07-27 发布于河北
  • 举报

Java 代理模式高频面试题及详细答案(真实面试版).docx

Java代理模式高频面试题及详细答案(真实面试版)

1.什么是代理模式?核心作用是什么?

答案:

代理模式就是给目标对象提供一个代理对象,由代理对象控制对原目标对象的访问。简单说就是不直接访问目标类,通过中间代理类间接访问。

核心作用:

在不修改目标类源码的前提下,对目标方法进行增强(符合开闭原则)

统一扩展公共逻辑:日志、事务、权限校验、性能监控、限流等

控制目标对象的访问权限,屏蔽底层复杂逻辑

日常开发中SpringAOP、MyBatisMapper接口、RPC远程调用底层都是靠代理实现的。

2.Java中有几种代理方式?各自特点?

答案:

主要三种:静态代理、JDK动态代理、CGLIB动态代理

1.静态代理

手动写代理类,代理类和目标类实现同一个接口,编译期就确定代理关系。

缺点:冗余度极高,一个目标类就要对应一个代理类,接口新增方法,代理类必须同步改,维护成本大。

2.JDK动态代理

运行期动态生成代理类字节码,不需要手动写代理类。必须基于接口实现,没有接口无法使用。

3.CGLIB动态代理

基于继承目标类的方式实现代理,不需要接口,通过子类重写父类方法完成增强。

缺点:目标类不能是final,final方法无法被重写,也就无法代理。

3.手写简单静态代理(面试口述+核心代码逻辑)

答案:

核心逻辑:定义统一接口、目标类实现接口、代理类也实现接口,代理类

文档评论(0)

1亿VIP精品文档

相关文档