java優化程式設計-記憶體管理
記憶體管理的重要性:
java語言的效能極大程度上依賴於其執行的硬體環境資源,記憶體是硬體環境資源中非常重要的一部分,因此,如果開發人員開發的java
應用沒能有效合理的使用系統記憶體,那麼這個應用就不可能具備較高的效能。
JVM管理的記憶體的兩種型別:
堆記憶體(heap)與棧記憶體(stack)
簡單的解釋一下堆記憶體與棧記憶體,堆記憶體用來儲存程式在執行時建立或例項化的物件與變數;
而棧記憶體用來儲存程式程式碼中的方法(包括靜態方法和非靜態方法)
物件的建立階段:
在建立物件時的幾個關鍵應用規則:
(1)避免在迴圈體中建立物件,即使物件佔用的記憶體空間不大
(2)儘量及時使物件符合垃圾回收標準
(3)不要採用過深的繼承層次
(4)訪問本地變數優於訪問類中的變數
物件的應用階段:
系統中除非特別宣告,否則到所有物件的引用全部都時強引用(Strong Reference),我們還可以使用的其它引用方法有:
(1)軟引用(Soft Reference)
簡單介紹一下軟引用,軟引用通常用於實現一些常用資源的快取,實現Cache的功能,能夠確保java的記憶體溢位(OutOfMemory)。
(2)弱引用(Week Reference)
(3)虛引用(Phantom Reference)
不要顯示的呼叫垃圾回收,這會降低垃圾回收的效率。
相關文章
- JNI記憶體管理及優化記憶體優化
- 高階記憶體管理程式設計指南-實用的記憶管理記憶體程式設計
- Java併發程式設計:Java記憶體模型Java程式設計記憶體模型
- Android記憶體優化(一):Java記憶體區域Android記憶體優化Java
- Java併發程式設計之Java記憶體模型Java程式設計記憶體模型
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- 效能優化-記憶體池的設計和實現優化記憶體
- 持久記憶體程式設計記憶體程式設計
- C# 記憶體管理優化暢想----前言C#記憶體優化
- android記憶體管理機制與優化Android記憶體優化
- Android效能優化(三)之記憶體管理Android優化記憶體
- 記憶體優化策略記憶體優化
- UIImage 記憶體優化UI記憶體優化
- PHP記憶體優化PHP記憶體優化
- 記憶體優化技巧記憶體優化
- Java應用程式中的記憶體洩漏及記憶體管理Java記憶體
- Android效能優化篇之記憶體優化--記憶體洩漏Android優化記憶體
- JAVA記憶體管理 [轉]Java記憶體
- 【程式設計師的自我修養①】iOS記憶體管理程式設計師iOS記憶體
- 淺析C#程式設計中的記憶體管理C#程式設計記憶體
- 關於redis記憶體分析,記憶體優化Redis記憶體優化
- Android效能優化 - 記憶體優化Android優化記憶體
- 利用 gperftools 對nginx mysql 記憶體管理 效能優化NginxMySql記憶體優化
- Android學習之 記憶體管理機制與應用記憶體優化Android記憶體優化
- Java程式設計技術之淺析JVM記憶體Java程式設計JVM記憶體
- 《java併發程式設計的藝術》記憶體模型Java程式設計記憶體模型
- 記憶體優化相關記憶體優化
- Android記憶體優化Android記憶體優化
- Python 記憶體優化Python記憶體優化
- Android 記憶體優化Android記憶體優化
- app 的記憶體優化APP記憶體優化
- 1.記憶體優化(一)記憶體洩漏記憶體優化
- Android記憶體優化之記憶體快取Android記憶體優化快取
- Java虛擬機器記憶體優化實踐Java虛擬機記憶體優化
- java優化程式設計-物件重用Java優化程式設計物件
- 實踐App記憶體優化:如何有序地做記憶體分析與優化APP記憶體優化
- Java記憶體管理機制Java記憶體
- Android 是如何管理 App 記憶體的 — Android 記憶體優化第二彈AndroidAPP記憶體優化