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