面试题答案
一键面试关键类和接口及作用
- InvocationHandler 接口
- 作用:定义了代理实例的方法调用处理程序必须实现的接口。当代理对象的方法被调用时,实际会调用
InvocationHandler
接口实现类的invoke
方法。invoke
方法包含了对代理对象方法调用的具体处理逻辑,例如可以在方法调用前后添加日志记录、事务处理等通用操作。
- 作用:定义了代理实例的方法调用处理程序必须实现的接口。当代理对象的方法被调用时,实际会调用
- Proxy 类
- 作用:用于创建动态代理类和代理实例。它提供了静态方法
newProxyInstance
,通过该方法可以创建代理实例。该方法接受三个参数,分别是类加载器、代理类要实现的接口数组以及InvocationHandler
实例。Proxy 类负责生成代理类的字节码,并在运行时将其加载到 JVM 中,从而创建代理对象。
- 作用:用于创建动态代理类和代理实例。它提供了静态方法
- 被代理的接口
- 作用:动态代理需要为某个接口创建代理实例,被代理的接口定义了代理对象所具备的方法。代理对象会实现这些接口的方法,并且在方法调用时,将调用委托给
InvocationHandler
的invoke
方法进行处理。这样保证了代理对象与被代理对象具有相同的接口,使得在使用时可以用代理对象替代被代理对象。
- 作用:动态代理需要为某个接口创建代理实例,被代理的接口定义了代理对象所具备的方法。代理对象会实现这些接口的方法,并且在方法调用时,将调用委托给