为了账号安全,请及时绑定邮箱和手机立即绑定

java面试题:如何提高反射效率?

java面试题:如何提高反射效率?

红糖糍粑 2019-03-14 18:15:55
怎样提高反射的效率?
查看完整描述

6 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

说了半天,都没有人提到"setAccessible(true)"...楼上的各位不是资深java程序员吧?

edit:
实话地告诉你,JDK1.6之后,对于method/field/constructor的invoke这类的反射,除了"setAccessible(true)"之外,再无须其它任何优化, 完爆以前cglib的fastmethod之流

当然了,将得到的method/field/constructor对象做缓存这是基本的

07-31 edit:
忘了补充一句:
如果你在jdk6上跑,且如果你反射的目标方法是getter/setter methods的话,记得加上配置:-XX:-UseFastEmptyMethods -XX:-UseFastAccessorMethods , 这两个配置的关闭是为了让accessor methods能够被jit; jdk7以上不需要设置这两个配置


查看完整回答
反对 回复 2019-04-15
?
倚天杖

TA贡献1828条经验 获得超3个赞

ReflectASM 通过字节码生成的方式加快反射速度


查看完整回答
反对 回复 2019-04-15
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

使用反射框架,如joor,或者apache的commons相关工具类


查看完整回答
反对 回复 2019-04-15
  • 6 回答
  • 0 关注
  • 914 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信