P於GC

yang_jh發表於2003-10-27
如前所f,Java程式絛興俁嚷鬧饕潁饕怯伸叮牽玫拇嬖冢

先v概念堆(Heap)和#ǎ櫻簦幔悖耄押6際譴Ψ絞
堆就是堆;>褪
堆:Java 程式的物件生活的地方,包含活的物件,死的物件以及剩Nw。是分配ο蟠臻g的地方(分配空g由解器承僬f一句:解器在橐例分配完存臻g後,便_始υ例所子玫撓w^域的使用。一旦物件使用完,便⑵浠厥盞蕉閻小
#河噓P5惱Z言在上一篇中已提^.
f明一下由於堆不象J沁Bm的空g,所以硭俁炔豢贍芟R

由上面所f,我就可能.
1. l碚磯閻械熱藎員闋你乎]有延t的堆中@的空g呢.
其@r候GC就站了出恚牽玫撓錳簿馱詿吮惑wF.然GC除了用砬宄w垃圾之外,有一作用:(模M出一=Y)整理堆中的物件,把它D移到一hxGarbage的Q空g中og隔的排列起,就象V幸泳o,橄亂需要分配的ο籩敢較潁
2. 那GC怎N硬拍茉詼閻姓業醬婊畹ο竽
程式在建立(NEW)一οr,在堆中分配H建立@ο蟮卻媯V蟹峙湟指向@ο蟮囊引用.那N只要在#oB存^)中找到@引用,就可以跟到@活的ο螅ㄏ仍倌憧贍苊靼孜N要把ο螅危牛紓K不用r又⑵湓O椋危眨蹋蹋睿澹骶褪⒁梅湃V校睿醯歟煺孟嚳矗業街, GC⑺一堆的K中移到另外一堆的K中,K⑺一挨一的排列起,而F一模M的=Y,只是它不是先M後出的分配.

GC的\行需要子靡程,也就是f\行GC本身就檔統淌竭\行r的效能.再f了,GC如此的蹂k卻,肯定也檔統淌叫閱艿.F在知道了NJava程式稅

想M一步t解堆和,⒖礎Y》

相關文章