- Java編程講義
- 榮銳鋒 張晨光等編著
- 605字
- 2022-07-28 18:49:26
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的時間。
- Instant Node Package Manager
- 深入理解Android(卷I)
- 自制編譯器
- Python入門很簡單
- Python王者歸來
- Building a Recommendation Engine with Scala
- Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
- Java項目實戰(zhàn)精編
- Android開發(fā)案例教程與項目實戰(zhàn)(在線實驗+在線自測)
- Scratch3.0趣味編程動手玩:比賽訓練營
- Julia 1.0 Programming Complete Reference Guide
- INSTANT Silverlight 5 Animation
- 代碼閱讀
- Moodle 3 Administration(Third Edition)
- HTML5游戲開發(fā)實戰(zhàn)