新聞中心
今天就跟大家聊聊有關(guān)如何在java中使用類加載器,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及航空箱等,在成都網(wǎng)站建設(shè)、成都全網(wǎng)營銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。
Java可以用來干什么
Java主要應(yīng)用于:1. web開發(fā);2. Android開發(fā);3. 客戶端開發(fā);4. 網(wǎng)頁開發(fā);5. 企業(yè)級(jí)應(yīng)用開發(fā);6. Java大數(shù)據(jù)開發(fā);7.游戲開發(fā)等。
1、loadClass(String)
當(dāng)類加載請求到來時(shí),首先從緩存中找到類對(duì)象。如果有直接返回,如果沒有,交給這種加載的父加載器加載。如果沒有父加載,交給頂級(jí)啟動(dòng)加載器加載。如果最后還是找不到,用findClass()加載;
2、FindClass(String)
按名稱或位置加載Class字節(jié)碼,然后使用defineClass通常由子類實(shí)現(xiàn),如果需要定制ClassLoader,則必須重寫該方法。
3、defineClass(byte[]b,intoff,intlen)
defineClass()方法是將byte字節(jié)流解析為JVM能夠識(shí)別的Class對(duì)象(ClassLoader中已經(jīng)實(shí)現(xiàn)了該方法邏輯),該方法不僅可以通過class文件實(shí)例化class對(duì)象,還可以通過其他方法實(shí)例化class對(duì)象,例如,通過網(wǎng)絡(luò)接收一類字節(jié)碼,然后轉(zhuǎn)換為byte字節(jié)流來創(chuàng)建相應(yīng)的Class對(duì)象,而defineClass()方法通常與findClass()方法一起使用,通常在自定義類加載器時(shí),會(huì)直接覆蓋Classloader的findClass()方法并編寫加載規(guī)則,獲得要加載類的字節(jié)碼后轉(zhuǎn)換為流,然后調(diào)用defineClass()方法生成類的Class對(duì)象,簡單地說就是將classs文件轉(zhuǎn)換為Classs對(duì)象。
4、resolveClass
用這種方法可以使用類Class對(duì)象創(chuàng)建完成也可以同時(shí)解析。之前我們說鏈接階段主要是對(duì)字節(jié)碼進(jìn)行驗(yàn)證,分配存儲(chǔ)器,設(shè)置類變量,同時(shí)將字節(jié)碼文件中的符號(hào)引用轉(zhuǎn)換為直接引用。
看完上述內(nèi)容,你們對(duì)如何在java中使用類加載器有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)頁標(biāo)題:如何在java中使用類加載器
轉(zhuǎn)載源于:http://ef60e0e.cn/article/isjhpd.html