 |
許多程序設(shè)計(jì)語言允許在運(yùn)行時動態(tài)分配內(nèi)存。分配內(nèi)存的過程因各種語言的語法不同而有所不同,但總要返回指向內(nèi)存塊開始地址的指針。 一旦不再需要所分配的內(nèi)存(指向內(nèi)存的指針超出使用范圍),程序或運(yùn)行時環(huán)境最好將內(nèi)存釋放,避免內(nèi)存越界時得到意外結(jié)果。 在C和C++(及其他語言)中,由程序開發(fā)人員負(fù)責(zé)內(nèi)存的釋放。這是個很惱人的事情,因?yàn)槌绦蜷_發(fā)人員并不總是知道內(nèi)存應(yīng)該在何時釋放。如果不釋放內(nèi)存.那么當(dāng)系統(tǒng)中沒有內(nèi)存可用時程序會崩潰。這些程序被稱為有“內(nèi)存漏洞”。 在Java中,程序員不必親自釋放內(nèi)存,它提供了后臺系統(tǒng)級線程,記錄每次內(nèi)存分配的情況.并統(tǒng)計(jì)每個內(nèi)存指針的引用次數(shù)。在Java虛擬機(jī)運(yùn)行時環(huán)境閑置時,垃圾收集線程將檢查是否存在引用次數(shù)為O的內(nèi)存指針;如果有的話,則垃圾收集線程把該內(nèi)存“標(biāo)記”為清除(“釋放”)
在JAVA程序生存期內(nèi),垃圾收集將自動進(jìn)行,無需用戶釋放內(nèi)存,從而消除了內(nèi)存漏洞。
|
作者:未知 | 文章來源:未知 | 更新時間:2007-12-26 16:58:05
|
|
 |
 |
最新文章 |
|
|
 |