1. 前言

  Java和C++之間顯著的一個區(qū)別就是對內(nèi)存的管理。和C++把內(nèi)存管理的權(quán)利賦予給開發(fā)人員的方式不同,Java擁有一套自動的內(nèi)存回收系統(tǒng)(Garbage Collection,GC)簡稱GC,可以無需開發(fā)人員干預(yù)而對不再使用的內(nèi)存進(jìn)行回收管理。

  垃圾回收技術(shù)(以下簡稱GC)是一套自動的內(nèi)存管理機(jī)制。當(dāng)計算機(jī)系統(tǒng)中的內(nèi)存不再使用的時候,把這些空閑的內(nèi)存空間釋放出來重新投入使用,這種內(nèi)存資源管理的機(jī)制就稱為垃圾回收。

  其實GC并不是Java的專利,GC的的發(fā)展歷史遠(yuǎn)比Java來得久遠(yuǎn)的多。早在Lisp語言中,就有GC的功能,包括其他很多語言,如:Python(其實Python的歷史也比Java早)也具有垃圾回收功能。

  使用GC的好處,可以把這種容易犯錯的行為讓給計算機(jī)系統(tǒng)自己去管理,可以防止人為的錯誤。同時也把開發(fā)人員從內(nèi)存管理的泥沼中解放出來。

  雖然使用GC雖然有很多方便之處,但是如果不了解GC機(jī)制是如何運(yùn)作的,那么當(dāng)遇到問題的時候,我們將會很被動。所以有必要學(xué)習(xí)下Java虛擬機(jī)中的GC機(jī)制,這樣我們才可以更好的利用這項技術(shù)。當(dāng)遇到問題,比如內(nèi)存泄露或內(nèi)存溢出的時候,或者垃圾回收操作影響系統(tǒng)性能的時候,我們可以快速的定位問題,解決問題。

  接下來,我們來看下JVM中的GC機(jī)制是怎么樣的。

2. 哪些內(nèi)存可以回收

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式