java優化程式設計-記憶體管理

handawei_5發表於2010-07-09

記憶體管理的重要性:
java語言的效能極大程度上依賴於其執行的硬體環境資源,記憶體是硬體環境資源中非常重要的一部分,因此,如果開發人員開發的java
應用沒能有效合理的使用系統記憶體,那麼這個應用就不可能具備較高的效能。
JVM管理的記憶體的兩種型別:
堆記憶體(heap)與棧記憶體(stack)
簡單的解釋一下堆記憶體與棧記憶體,堆記憶體用來儲存程式在執行時建立或例項化的物件與變數;
而棧記憶體用來儲存程式程式碼中的方法(包括靜態方法和非靜態方法)

物件的建立階段:
在建立物件時的幾個關鍵應用規則:
(1)避免在迴圈體中建立物件,即使物件佔用的記憶體空間不大
(2)儘量及時使物件符合垃圾回收標準
(3)不要採用過深的繼承層次
(4)訪問本地變數優於訪問類中的變數

物件的應用階段:
系統中除非特別宣告,否則到所有物件的引用全部都時強引用(Strong Reference),我們還可以使用的其它引用方法有:
(1)軟引用(Soft Reference)
     簡單介紹一下軟引用,軟引用通常用於實現一些常用資源的快取,實現Cache的功能,能夠確保java的記憶體溢位(OutOfMemory)。
(2)弱引用(Week Reference)
(3)虛引用(Phantom Reference)

不要顯示的呼叫垃圾回收,這會降低垃圾回收的效率。

相關文章