官术网_书友最值得收藏!

1.4.2 垃圾回收機制

在傳統(tǒng)的程序開發(fā)語言(C、C++及其他語言)中允許動態(tài)分配內(nèi)存,同時需要程序開發(fā)人員負責內(nèi)存資源的釋放,如果不釋放內(nèi)存,則隨著程序的不斷運行,不斷有新的資源需要分配內(nèi)存,當系統(tǒng)中沒有內(nèi)存可用時程序就會崩潰?;蛘撸褎討B(tài)分配的堆內(nèi)存由于某種原因未被程序釋放或無法釋放,也會造成系統(tǒng)內(nèi)存的浪費。上述這些現(xiàn)象都被稱為“內(nèi)存漏洞”。

垃圾回收(Garbage Collection,GC)就是指釋放垃圾對象所占用的空間,防止內(nèi)存溢出。內(nèi)存處理是讓所有編程人員都很頭疼的地方,如果忘記或者錯誤地回收內(nèi)存會導致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動監(jiān)測對象并判斷是否超過作用域,從而確定是不是要回收對象。

在Java語言中,引入了垃圾回收機制,程序開發(fā)者在編寫程序時無須考慮內(nèi)存管理問題。Java提供了后臺系統(tǒng)級線程,自動記錄每次內(nèi)存分配的情況,并統(tǒng)計每個內(nèi)存地址的引用次數(shù),不定時地對內(nèi)存中沒有被引用或者長時間沒有使用的對象進行回收,這樣回收的內(nèi)存資源可以再次分配其他的內(nèi)存申請。

垃圾回收能自動釋放內(nèi)存空間,使開發(fā)者可以將更多精力投入到軟件核心功能設計之上,不需要主動去考慮內(nèi)存漏洞的問題,極大地減輕了程序開發(fā)者編程的負擔。同時,垃圾回收是Java語言安全性策略的一個重要部分,它能夠有效保護程序的完整性。當然,Java的垃圾回收也有一個潛在的缺點,就是它的開銷影響程序性能,Java虛擬機必須追蹤運行程序中有用的對象,最終釋放沒用的對象,這個過程需要花費CPU的時間。

主站蜘蛛池模板: 昌黎县| 安丘市| 扎囊县| 乃东县| 榆树市| 平舆县| 独山县| 微博| 莲花县| 金昌市| 久治县| 特克斯县| 沂水县| 永福县| 新兴县| 仁化县| 武宁县| 荆州市| 三亚市| 嘉善县| 五寨县| 和龙市| 二连浩特市| 分宜县| 棋牌| 博客| 六枝特区| 青州市| 布尔津县| 上犹县| 施甸县| 莆田市| 遂川县| 镇雄县| 和林格尔县| 江达县| 龙井市| 平原县| 广宁县| 西充县| 德令哈市|