在多線程程序中使用函數或使用靜態方法會更快嗎?請解釋爲什麼它更快。函數與靜態方法
函數與靜態方法
回答
您可能已經聽說「純函數」更適合多線程。一個純函數通常可以像Java中的靜態方法一樣實現,但它也可以作爲實例方法實現。主要的一點是,如果你沒有任何可以改變的全局變量,那麼多線程時總是更好。所以如果你有一個不可變的對象,那就像靜態方法實現一個純函數一樣好。
即使兩種方法之間存在明顯的區別(我認真地懷疑),您不應該基於此設計您的程序。良好的設計應該(幾乎)永遠不會犧牲以實現更好的性能。因爲你收穫不大,但是你輸了很多。
+1:即使你發現有一個小的差異,你可能會失望的發現,隨着JVM的改進,差異會發生變化。這意味着,如果您爲了適應而大幅改變設計,並且發現實際上稍後會變慢,那麼可能會令人失望。堅持你簡單明瞭,不用擔心每一個納秒,除非你可以說它會給業務帶來多大的差異。 – 2012-04-29 08:42:16
完全同意。決定靜態還是實例應根據此方法*邏輯*屬於 - 來指定給特定對象實例還是指向特定類的所有對象。雖然可能會有小的性能損失(公共非最終方法是虛擬調用),但它通常可以忽略,再加上JVM變得更加智能,並且越來越高效地處理它。如果這種差異真的對您的應用程序很重要,也許Java是一個糟糕的選擇。 – 2012-04-29 10:19:40
- 1. 泛型方法:靜態與非靜態
- 2. 靜態與非靜態方法2
- 3. 方法參考靜態與非靜態
- 4. 靜態與非靜態方法
- 5. PHP4和靜態方法/回調函數
- 6. PHP中類的靜態方法/函數
- 7. Oveloaded函數靜態方法錯誤
- 8. 靜態方法 - 調用函數
- 9. Ninject和靜態構造函數方法
- 10. Scala(方法/函數).hashCode靜態值?
- 11. 功能與靜態方法
- 12. Castle Windsor與靜態方法
- 13. 陣列與靜態方法
- 14. Java:靜態方法與非靜態方法
- 15. 靜態同步方法與非靜態同步方法
- 16. (Java)靜態通用方法與泛型類靜態方法
- 17. 靜態方法/函數調用同一類中的非靜態函數
- 18. 工廠方法:靜態函數VS C++中的非靜態函數實現
- 19. Mongoose'靜態'方法與'實例'方法
- 20. 靜態函數靜態函數
- 21. 靜態靜態方法?
- 22. 實例方法與帶參數參數的靜態方法
- 23. 靜態方法
- 24. 靜態方法
- 25. 靜態方法
- 26. 靜態方法
- 27. 靜態方法
- 28. 靜態方法
- 29. 無參數方法/靜態
- 30. Java靜態方法參數
鑑於「函數」並不是真正用於Java的術語,您應該澄清一下您的問題。理想情況下,舉一個例子來展示兩種方法。 – 2012-04-29 07:38:21
你應該使用靜態方法和非靜態方法。 – 2012-04-29 07:39:50
我認爲他的意思是方法,而不是功能。 – 2012-04-29 07:40:19