背景 JDK 动态代理存在的一些问题: 调用效率低 JDK 通过反射实现动态代理调用,这意味着低下的调用效率: 每次调用 Method.invoke() 都会检查方法的可见性.校验参数是否匹配,过程涉及到很多 native 调用,具体参见JNI 调用开销 反射调用涉及动态类解析,这种不可预测性,导致被反射调用的代码无法被 JIT 内联优化,具体参见反射调用方法 可以通过java.lang.invoke.MethodHandle来规避以上问题,但是这不在本文讨论的范围. 只能代理接口 java.l…