A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑昌奋 中级黑马   /  2013-3-18 16:37  /  1110 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郑昌奋 于 2013-3-18 18:44 编辑

我们学习了反射原理,但是在实际开发的过程中,如果需要调用方法特定的方法的时候 ,我们是用反射原理去调用好呢还是跟之前一样直接去调用额?这两种方式会不会影响到功能效率的问题呢?

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

4 个回复

正序浏览
沉默de羔羊 发表于 2013-3-18 17:07
反射效率要比直接调用的效率慢很多!
直接调用和反射各有利弊。
实际开发中,要实际考虑问题:

谢谢您的详细讲解。明白了
回复 使用道具 举报
在实际的应用中,如果调用的类和方法,比较明确和固定,一般都直接调用。反射调用是一种非常消耗资源的调用方式,效率很低。但是如果我们调用的的类和方法,不太明确
,譬如我们需要在配置文件中,配置要调用的类和方法,这时候,我们才需要,用反射  来实现动态调用。再譬如很多框架开发者,根本不知道我们将要写什么类,但是他们又
需要调用我们写的类,来完成功能,所以用反射完成动态的调用。
回复 使用道具 举报
本帖最后由 沉默de羔羊 于 2013-3-18 17:08 编辑

反射效率要比直接调用的效率慢很多!
直接调用和反射各有利弊。
实际开发中,要实际考虑问题:
比如:
使用反射:
1.你使用别人的jar包中的某个私有方法或属性的时候,你是没办法进行修改的时候,只要知道对应的信息可以通过反射来操作。
2.你有个大的客户管理系统,里面有很多的接口(这里使用多个接口,假如直接调用就显得重复操作,我们可以考虑使用反射,就减少了很多冗余的代码),但是就本公司的人员使用(也就是用户量少,并发不高的情况。
3.等等其它情况,我目前就只知道上面的问题。
那么下来我说下他存在的一个问题(也就是我知道的一个):

这里首先我说一个我自己的经历:
这里我就出现过,我第一家公司,负责一个300W的台湾名留集团的美发连锁系统,每天的订单量百万个以上,我就在结账的某个地分使用了反射,月结一个月的订单花费了4分钟!!!被领导批了好久!现在都记忆深刻呢!
然后,根据我师傅(也就是技术组长),告诉我原理!才知道,反射机制的效率的确很低!
最后换成了直接调用类,并且优化了方法,最终搞定问题!

使用直接调用:这个就不做多说明了,基本上都可以用!
回复 使用道具 举报
反射基本上是一种解释操作,我们可以告诉JVM,我们希望做什么并且它满足我们的要求。这类操作总是慢于只直接执行相同的操作。

在这里有详细的解释、希望可以帮到你http://zhidao.baidu.com/question/151090808.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马