2010-07-26 40 views

回答

3

的垃圾回收器爲你管理內存。它在代碼運行時在後臺線程上運行。你通常不直接與它進行交互。您只需通過在JVM中運行即可「使用」它。

+0

是的。不要擔心GC。它的設計是獨立工作的,當你放手時它會做得更好。 – BalusC 2010-07-26 12:58:39

1

whitepaper包含有關Java HotSpot虛擬機中垃圾收集所需的全部信息。如果您遇到任何不熟悉的概念,只需在Wikipedia中搜索它或繼續此線程。

0

你不能「使用」垃圾回收。它是語言及其對象模型的基礎部分。

爲了澄清這一點,讓我們只考慮類類型(如StringInteger),而忽視基本的類型(如intchar)。 (數組類型也被視爲類類型。)假設T是這樣的類類型。

在Java中,與其他語言不同,您不能擁有類型爲的變量。無論何時您聲明變量T x;x實際上都是一種「跟蹤參考」。該參考可以是null,也可以是指T類型的現有對象。但是,對象本身必須始終明確,動態創建

T x = new T(); 

該對象,一到x指,住在一些魔術,管理您的計算機的一部分,你不能直接操作。您可以創建更多參考資料,雖然:

T y = x; // another reference to the same object 

現在,一個自然的問題出現了:當沒有更多的引用發生了什麼目標?答案是垃圾回收:當沒有對象的進一步引用時,它就有資格在稍後的非確定性時間點被清除。這就是只有方式,其中與對象相關的資源可以永久恢復。

沒有垃圾收集,你可以基本上沒有任何對象在Java中以任何定義良好,穩健的方式。