

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、JavaJava虛擬機的類的裝載虛擬機的類的裝載2009061216:02haobobesthaobobest博客我要評論(0)字號:T|T本文分為三個大的部分,對Java虛擬機的類的裝載進行了講述,其中最主要的是Java虛擬機的類裝載實現(xiàn)與應用和Java虛擬機的類裝載原理,最后對整篇文章的總結(jié)。AD:一、引言一、引言Java虛擬機(JVM)的類裝載就是指將包含在類文件中的字節(jié)碼裝載到JVM中并使其成為JVM一部分的過程。JVM的類動態(tài)
2、裝載技術(shù)能夠在運行時刻動態(tài)地加載或者替換系統(tǒng)的某些功能模塊而不影響系統(tǒng)其他功能模塊的正常運行。本文將分析JVM中的類裝載系統(tǒng),探討JVM中類裝載的原理、實現(xiàn)以及應用。二、二、JavaJava虛擬機的類裝載實現(xiàn)與應用虛擬機的類裝載實現(xiàn)與應用2.12.1裝載過程簡介裝載過程簡介所謂裝載就是尋找一個類或是一個接口的二進制形式并用該二進制形式來構(gòu)造代表這個類或是這個接口的class對象的過程,其中類或接口的名稱是給定了的。當然名稱也可以通過計算
3、得到,但是更常見的是通過搜索源代碼經(jīng)過編譯器編譯后所得到的二進制形式來構(gòu)造。在Java中,類裝載器把一個類裝入Java虛擬機中,要經(jīng)過三個步驟來完成:裝載、鏈接和初始化,其中鏈接又可以分成校驗、準備和解析三步,除了解析外,其它步驟是嚴格按照順序完成的,各個步驟的主要工作如下:裝載:查找和導入類或接口的二進制數(shù)據(jù);鏈接:執(zhí)行下面的校驗、準備和解析步驟,其中解析步驟是可以選擇的;校驗:檢查導入類或接口的二進制數(shù)據(jù)的正確性;準備:給類的靜態(tài)變
4、量分配并初始化存儲空間;解析:將符號引用轉(zhuǎn)成直接引用;初始化:激活類的靜態(tài)變量的初始化Java代碼和靜態(tài)Java代碼塊。檢查請求要裝載的類是否已經(jīng)被裝載(3)檢查請求加載的類是否是系統(tǒng)類(4)嘗試從類裝載器的存儲區(qū)獲取所請求的類(5)在虛擬機中定義所請求的類(6)解析所請求的類(7)返回所請求的類。所有的Java虛擬機都包括一個內(nèi)置的類裝載器,這個內(nèi)置的類庫裝載器被稱為根裝載器(bootstrapClassLoader)。根裝載器的特殊
5、之處是它只能夠裝載在設(shè)計時刻已知的類因此虛擬機假定由根裝載器所裝載的類都是安全的、可信任的可以不經(jīng)過安全認證而直接運行。當應用程序需要加載并不是設(shè)計時就知道的類時必須使用用戶自定義的裝載器(userdefinedClassLoader)。下面我們舉例說明它的應用。1.publicabstractclassMultiClassLoaderextendsClassLoader2....3.publicsynchronizedClassloa
6、dClass(Stringsbooleanflag)4.throwsClassNotFoundException5.6.7.Classclass1=(Class)classes.get(s)8.9.10.if(class1!=null)returnclass111.try12.class1=super.findSystemClass(s)13.returnclass114.15.catch(ClassNotFoundException_
7、ex)16.System.out.println(“Notasystemclass.“)17.18.19.20.byteabyte0[]=loadClassBytes(s)21.if(abyte0==null)thrownewClassNotFoundException()22.23.class1=defineClass(nullabyte00abyte0.length)24.if(class1==null)thrownewClassF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java虛擬機
- Java虛擬機衰退分析.pdf
- 基于FPGA的Java虛擬機實現(xiàn).pdf
- Java Card虛擬機的研究與優(yōu)化.pdf
- Java虛擬機的自適應動態(tài)優(yōu)化.pdf
- Wolf Linux Java虛擬機研究.pdf
- Java可視虛擬機的研究與實現(xiàn).pdf
- Java虛擬機的內(nèi)存管理策略的研究.pdf
- 面向網(wǎng)格的Java虛擬機的任務調(diào)度.pdf
- 移動通信終端的Java虛擬機優(yōu)化研究.pdf
- 針對嵌入式系統(tǒng)的Java虛擬機研究.pdf
- 嵌入式JAVA虛擬機實現(xiàn)技術(shù)的研究.pdf
- Java線程狀態(tài)的保存和重構(gòu)—解析和擴展Java虛擬機.pdf
- 嵌入式Java虛擬機的研究與實踐.pdf
- 嵌入式JAVA虛擬機的移植與優(yōu)化.pdf
- Java嵌入式虛擬機的優(yōu)化與研究.pdf
- 移動式JAVA虛擬機的研究及改進實現(xiàn).pdf
- 針對嵌入式系統(tǒng)的Java虛擬機的硬件實現(xiàn).pdf
- JAVA虛擬機相關(guān)技術(shù)研究與實踐.pdf
- 基于Dalvik虛擬機的java指令調(diào)試設(shè)計與實現(xiàn).pdf
評論
0/150
提交評論