答案是:問這個問題意味着你花時間和精力在錯誤的地方。
的關鍵角色去表現良好的Java應用程序:想出一個優雅的OOP設計,實現了一個直接的方式您的要求。
你必須明白,「Java性能魔術」幾乎完全在運行時間處由Just-in-Time編譯器工作。 JIT最適合那些我們認爲是Java中的「最佳實踐」的常用模式。
試圖想出「特殊」的想法,比如「讓靜態使用靜態」甚至可能導致最終性能變差 - 因爲您的「特殊」代碼阻止JIT以最佳方式工作。
所以:分別信任JIT和GC。並確保這些工具能夠以「最佳」方式工作......做其他人都在做的事情!
不要讓這種過早優化的想法毀了你的OOP設計。即使您的應用程序會陷入罕見的類別,需要密集低水平優化 - 那麼就只有一個你的方法:學習GC和JIT 的工作深入。
換句話說,這樣的問題並不真正問題。含義:
當然
- 你避免徹底愚蠢的錯誤,但
- ,否則你做不擔心內存或性能主題除非你的手(例如有真正問題與應用程序需要太許多記憶或顧客抱怨你)。
然後 - 當你進入一個「真正」的問題:那麼你必須輪廓您的應用程序,以瞭解問題的根源。再說一次:你不允許這種過早的(未受教育的)優化思想以負面的方式影響你的設計。
而且正如評論意味着我不夠清楚:當你有一個真正的記憶問題,那麼你絕對必須理解像「燙髮一代」的術語。因爲那你必須瞭解細節 GC的工作原理。嚴重的是:相信這裏的人告訴你,關鍵字在創建「高效內存」應用程序時不起任何重要作用。
他們都錯了。在適合您的設計時使用它,否則不要使用它。內存管理不應該是你主要關心的問題。 – shmosel
我認爲這取決於。 – Willmore
靜態成員不會堆疊。 我認爲它保留在PermGen。 [鏈接](http://www.journaldev。java/jvm-memory-model-memory-management-in-java) – MehmanBashirov