2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、JavaJava虛擬機(jī)的類的裝載虛擬機(jī)的類的裝載2009061216:02haobobesthaobobest博客我要評(píng)論(0)字號(hào):T|T本文分為三個(gè)大的部分,對(duì)Java虛擬機(jī)的類的裝載進(jìn)行了講述,其中最主要的是Java虛擬機(jī)的類裝載實(shí)現(xiàn)與應(yīng)用和Java虛擬機(jī)的類裝載原理,最后對(duì)整篇文章的總結(jié)。AD:一、引言一、引言Java虛擬機(jī)(JVM)的類裝載就是指將包含在類文件中的字節(jié)碼裝載到JVM中并使其成為JVM一部分的過程。JVM的類動(dòng)態(tài)

2、裝載技術(shù)能夠在運(yùn)行時(shí)刻動(dòng)態(tài)地加載或者替換系統(tǒng)的某些功能模塊而不影響系統(tǒng)其他功能模塊的正常運(yùn)行。本文將分析JVM中的類裝載系統(tǒng),探討JVM中類裝載的原理、實(shí)現(xiàn)以及應(yīng)用。二、二、JavaJava虛擬機(jī)的類裝載實(shí)現(xiàn)與應(yīng)用虛擬機(jī)的類裝載實(shí)現(xiàn)與應(yīng)用2.12.1裝載過程簡介裝載過程簡介所謂裝載就是尋找一個(gè)類或是一個(gè)接口的二進(jìn)制形式并用該二進(jìn)制形式來構(gòu)造代表這個(gè)類或是這個(gè)接口的class對(duì)象的過程,其中類或接口的名稱是給定了的。當(dāng)然名稱也可以通過計(jì)算

3、得到,但是更常見的是通過搜索源代碼經(jīng)過編譯器編譯后所得到的二進(jìn)制形式來構(gòu)造。在Java中,類裝載器把一個(gè)類裝入Java虛擬機(jī)中,要經(jīng)過三個(gè)步驟來完成:裝載、鏈接和初始化,其中鏈接又可以分成校驗(yàn)、準(zhǔn)備和解析三步,除了解析外,其它步驟是嚴(yán)格按照順序完成的,各個(gè)步驟的主要工作如下:裝載:查找和導(dǎo)入類或接口的二進(jìn)制數(shù)據(jù);鏈接:執(zhí)行下面的校驗(yàn)、準(zhǔn)備和解析步驟,其中解析步驟是可以選擇的;校驗(yàn):檢查導(dǎo)入類或接口的二進(jìn)制數(shù)據(jù)的正確性;準(zhǔn)備:給類的靜態(tài)變

4、量分配并初始化存儲(chǔ)空間;解析:將符號(hào)引用轉(zhuǎn)成直接引用;初始化:激活類的靜態(tài)變量的初始化Java代碼和靜態(tài)Java代碼塊。檢查請(qǐng)求要裝載的類是否已經(jīng)被裝載(3)檢查請(qǐng)求加載的類是否是系統(tǒng)類(4)嘗試從類裝載器的存儲(chǔ)區(qū)獲取所請(qǐng)求的類(5)在虛擬機(jī)中定義所請(qǐng)求的類(6)解析所請(qǐng)求的類(7)返回所請(qǐng)求的類。所有的Java虛擬機(jī)都包括一個(gè)內(nèi)置的類裝載器,這個(gè)內(nèi)置的類庫裝載器被稱為根裝載器(bootstrapClassLoader)。根裝載器的特殊

5、之處是它只能夠裝載在設(shè)計(jì)時(shí)刻已知的類因此虛擬機(jī)假定由根裝載器所裝載的類都是安全的、可信任的可以不經(jīng)過安全認(rèn)證而直接運(yùn)行。當(dāng)應(yīng)用程序需要加載并不是設(shè)計(jì)時(shí)就知道的類時(shí)必須使用用戶自定義的裝載器(userdefinedClassLoader)。下面我們舉例說明它的應(yīng)用。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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論