2012-08-01 130 views
-2

如何在內存管理環境中進行內存管理?內存管理環境中的內存管理

它只是垃圾收集或其他東西?

在Java中,GC是週期性的VM沒有顯式調用垃圾收集完成。我知道我們可以使用System.gc()來請求垃圾回收,但不保證垃圾回收會發生。

那麼,有沒有在內存管理的環境中其他任何方式進行內存管理?

+0

「存儲管理環境」? – kosa 2012-08-01 19:38:39

+0

我認爲,問答已經足夠清楚,可以重新開放。 – Vikram 2012-08-06 15:34:27

回答

1

垃圾回收內存如何在託管環境管理(其實,這就是爲什麼它被稱爲管理環境 - 因爲內存是爲程序員管理)。

通常,您不需要在這樣的環境中管理內存。

+0

那麼,這是否意味着在這樣的環境中程序員根本不需要擔心內存? – Vikram 2012-08-01 19:40:46

+0

@Vikram - 嗯,你確實需要擔心內存_consumption_,而不是爲你的對象分配和釋放內存。 – Oded 2012-08-01 19:41:38

+0

@Oded:有些人根本不相信討厭的GC。如果你想完成某件事,那就自己動手吧。 :) – 2012-08-01 19:44:56

1

簡短的回答你的問題是沒有。在Java環境中,您確實無法直接控制釋放或管理堆空間的方式。這就是說,現代JVM具有非常高效的GC算法,並且除了最極端的情況外,通常都會爲所有用戶管理內存使用情況做出完美可接受的工作。

儘管您無法直接控制收集哪些對象以及何時發生此過程,但您可以使用java.lang.ref中的參考類來影響哪些對象符合條件且更有可能在給定時間被垃圾收集。

0

即使你不能真正在技術層面上管理你的記憶,開發商仍能夠管理存儲到一定程度。我的意思是,不要試圖去爭取或改進JVM,而要讓它爲你做好工作。但話雖如此,編寫不好的程序(即糟糕的內存管理,也就是內存使用)可能導致糟糕的程序體驗。但是,如果你從設計的角度管理你的內存(即不浪費內存,利用適當的算法和數據結構,如你認爲合適的不參考/釋放內存),這些東西可以讓你的開發人員得到某種程度的控制。