java语言的伪动态性(和反射实现动态性的代价)

Posted on 2018-05-14 16:19  无别事  阅读(824)  评论(0)    收藏  举报

动态语言如javascript   (可以在运行时候改变程序结构和变量类型)

c.java...不是动态语言,但是java的反射机制却带来了一些动态性。可见之前的帖子来了解反射。这里说反射实现动态性的代价。

 

我们知道框架大量用反射,反射很灵活但反射存在效率降低的问题。但是效率还有很多考虑,比如运行效率低了,但是开发效率高了,还有使用映射的框架往往在其他地方节约了时间,比如mybaits不需要多次打开连接数据库

反射调用的方法效率比普通方法的低30倍,但是反射里面的setAccessible(true)可以提高反射4倍的效率,任然慢7倍左右。

setAccessible(true)是安全检查跳过的意思