采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
性能开销 :反射涉及了动态类型的解析,所以 JVM 无法对这些代码进行优化。因此,反射操作的效率要比那些非反射操作低得多。我们应该避免在经常被执行的代码或对性能要求很高的程序中使用反射 这是我在网上看到的这段话,其中反射涉及了动态类型的解析 这个动态类型是什么意思, 请教下老师能举例说明下么,谢谢!
严格意义上java没有动态类型,不涉及动态类型的解析,只不过是通过反射api来访问java的类和对象及其成员,反射api会在运行时才能确定访问的是什么,存在类似签名信息这样的数据的读取来实现访问,会在第一次的时候有相对明显的开销,在运行的时候又由于指令不能在编译期确定,因此也基本上不存在指令优化,也会是慢的一个原因。
不过java虚拟机现在对反射的优化已经很不错了,说很慢其实不太公平。只要运用得当,反射基本不会对程序造成什么性能问题。
谢谢老师
登录后可查看更多问答,登录/注册
改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程
1.1k 1
1.2k 16
892 10
1.2k 10