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)存可以回收
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26