java反射为什么效率低 吖明 2022-02-13 178 阅读1分钟 Java 反射效率低主要原因是: Class.forName 会调用本地方法; Class.getMethod 则会遍历该类的公有方法,如果没有匹配到,它还将遍历父类的公有方法。这两个操作都很耗时。 Method#invoke 方法会对参数做封装和解封操作(可变参数 还是Object类型 需要变成Object[]数组和包装类,生成字节码时又要把数组拆解) 每次调用需要检查方法可见性(在 Method.invoke 里)和 校验参数 反射方法难以内联和JIT 无法优化 参考1 参考2