2014-03-02 29 views
1

我會通過Java反射缺點和碰到下面從Java文檔聲明:Java反射的缺點 - 性能開銷

性能開銷

由於反射涉及 動態解析的類型,某些不會執行Java虛擬機優化 。因此,反射操作的性能比它們的非反射性對應性慢,並且應當在 性能敏感的應用程序中頻繁調用的代碼段中避免 。

請幫我理解這一點。這意味着反射涉及動態解決的類型?一般來說,JVM提供的優化是什麼?

+0

第二個問題是什麼意思? – Bakuriu

+2

http://stackoverflow.com/a/547847/829571 – assylias

+0

這是一個編程語言實現的長長的故事 - 編譯,代碼優化,解釋,靜態和動態類型......先學會所有,並且答案變得明顯。 –

回答

2

由於您可以在啓動時輕鬆理解JVM,因此您的程序會進行很多改進以提高代碼的性能(這是一件好事!)但是當我們談論反射時,我們正在討論的是改變在運行時(我可以說它是非確定性的...... JVM不知道它會如何執行它),所以JVM無法改進它,因爲它在某些情況下在運行時可能會有所不同。

正如我在這種問題中總是說的:在這裏你可以找到非常好的人知道如何反射的答案..搜索周圍也是。