请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

java 关于反射性能

性能开销 :反射涉及了动态类型的解析,所以 JVM 无法对这些代码进行优化。因此,反射操作的效率要比那些非反射操作低得多。我们应该避免在经常被执行的代码或对性能要求很高的程序中使用反射
这是我在网上看到的这段话,其中反射涉及了动态类型的解析
这个动态类型是什么意思, 请教下老师能举例说明下么,谢谢!

正在回答 回答被采纳积分+3

1回答

bennyhuo 2019-08-08 22:23:06

严格意义上java没有动态类型,不涉及动态类型的解析,只不过是通过反射api来访问java的类和对象及其成员,反射api会在运行时才能确定访问的是什么,存在类似签名信息这样的数据的读取来实现访问,会在第一次的时候有相对明显的开销,在运行的时候又由于指令不能在编译期确定,因此也基本上不存在指令优化,也会是慢的一个原因。

不过java虚拟机现在对反射的优化已经很不错了,说很慢其实不太公平。只要运用得当,反射基本不会对程序造成什么性能问题。

0 回复 有任何疑惑可以回复我~
  • 提问者 用户1148542 #1
    谢谢老师
    回复 有任何疑惑可以回复我~ 2019-08-08 22:35:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信