我正在经历Java反射的缺点,并从Java文档中看到以下声明:
效果开销
因为反射涉及的类型 动态解析,某些Java虚拟机优化可以 不被执行。因此,反射操作较慢 性能比他们的非反光同行,应该是 在经常调用的代码段中避免使用 对性能敏感的应用程序。
请帮助我理解这一点。这意味着反射涉及动态解决的类型? JVM一般提供哪些优化?
答案 0 :(得分:2)
正如你可以很容易地理解JVM在启动你的程序时做了很多改进来提高代码的性能(这是一件很棒的事情!)但是当我们谈论反射时,我们正在讨论一个改变的事情。运行时(我可以说它是不确定的...... JVM在执行它之前无法知道它会是什么)所以JVM无法改进它,因为它在某些情况下在运行时可能会有所不同。
我总是在这样的问题中说:在这里你可以找到那些非常了解反思如何运作的人的答案。也可以搜索一下。