2011-10-06 75 views

回答

1

它告訴垃圾收集器立即執行垃圾收集。
注:你不能強迫VM到這一點,但在大多數情況下,GC將運行

下面是一個blog post一個鏈接Java垃圾收集器是如何工作的

這個問題已經被問here

也有看參數發現here


更新到nswer評論: GC將而不是收集活物,即使你強迫GC運行。它將(主要)完成JVM自動運行時的功能。

+0

即使他們正在運行....它會收集堆中的所有對象嗎?我的意思是即使有範圍還活着? – Harini

+3

@ user980918:不,垃圾收集的重點在於收集*垃圾*,即無法訪問的對象。 GC不應該收集可到達的(即活的)對象 - 這將是一個嚴重的錯誤。 – sleske

+0

@sleske真實的我感覺一樣..所以java有一個很好的功能來找出未使用的對象並清理它們。那麼爲什麼他們有明確的gc()方法? – Harini

1

此方法僅僅是虛擬機的一個暗示,它可能是一個合適的時間來執行巨大的垃圾收集。這種方法對於第一代GC版本在過去長時間停頓時可能會有用,但這些時間是無用的。你甚至不能保證這個方法背後有一個實際的實現:)