Posted on 2005-11-28 17:46
nemo 閱讀(592)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
編譯器、虛擬機(jī)
java虛擬機(jī)對(duì)“運(yùn)行時(shí)數(shù)據(jù)區(qū)”的描述是相當(dāng)抽象的。不同的虛擬機(jī)實(shí)現(xiàn)可能具有很不同的內(nèi)存限制,有的實(shí)現(xiàn)可能有大量的內(nèi)存可用,有的可能很少。有的實(shí)現(xiàn)可以利用虛擬內(nèi)存,有的則不能。規(guī)范本身對(duì)“運(yùn)行時(shí)數(shù)據(jù)區(qū)”只有抽象的描述,這就使得JAVA虛擬機(jī)可以很容易得在各種計(jì)算機(jī)和設(shè)備上實(shí)現(xiàn)。
java虛擬機(jī)沒(méi)有寄存器,其指令集使用java棧來(lái)存儲(chǔ)中間數(shù)據(jù)。這樣設(shè)計(jì)的原因使JAVA虛擬機(jī)的指令集盡量緊湊,同時(shí)也便于JAVA虛擬機(jī)在那些只有很少通用寄存器的平臺(tái)上實(shí)現(xiàn)。另外,有助于虛擬機(jī)實(shí)現(xiàn)的動(dòng)態(tài)編譯器和即時(shí)編譯的代碼優(yōu)化。
裝載、連接以及初始化過(guò)程:
- 裝載——查找并裝載類(lèi)型的二進(jìn)制數(shù)據(jù)
- 連接——執(zhí)行驗(yàn)證,準(zhǔn)備以及解析(可選)
驗(yàn)證
確保被倒入類(lèi)型的正確性。
準(zhǔn)備
為類(lèi)變量分配內(nèi)存,并將其初始化為默認(rèn)值。
解析
把類(lèi)型中的符號(hào)引用轉(zhuǎn)換為直接引用。
- 初始化——將類(lèi)變量初始化為正確的初始值