創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)長期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為荔浦企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站設(shè)計,荔浦網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。一、先看看編寫出的代碼的執(zhí)行過程:
二、研究類加載機(jī)制的意義
從上圖可以看出,類加載是Java程序運(yùn)行的第一步,研究類的加載有助于了解JVM執(zhí)行過程,并指導(dǎo)開發(fā)者采取更有效的措施配合程序執(zhí)行。
研究類加載機(jī)制的第二個目的是讓程序能動態(tài)的控制類加載,比如熱部署等,提高程序的靈活性和適應(yīng)性。
三、類加載的一般過程
原理:雙親委托模式
1、尋找jre目錄,尋找jvm.dll,并初始化JVM;
2、產(chǎn)生一個Bootstrap Loader(啟動類加載器);
3、Bootstrap Loader自動加載Extended Loader(標(biāo)準(zhǔn)擴(kuò)展類加載器),并將其父Loader設(shè)為Bootstrap Loader。
4、Bootstrap Loader自動加載AppClass Loader(系統(tǒng)類加載器),并將其父Loader設(shè)為Extended Loader。
5、最后由AppClass Loader加載HelloWorld類。
四、類加載器的特點(diǎn)
1、運(yùn)行一個程序時,總是由AppClass Loader(系統(tǒng)類加載器)開始加載指定的類。
2、在加載類時,每個類加載器會將加載任務(wù)上交給其父,如果其父找不到,再由自己去加載。
3、Bootstrap Loader(啟動類加載器)是最頂級的類加載器了,其父加載器為null.
五、類加載器的獲取
很容易,看下面例子
public class HelloWorld { public static void main(String[] args) { HelloWorld hello = new HelloWorld(); Class c = hello.getClass(); ClassLoader loader = c.getClassLoader(); System.out.println(loader); System.out.println(loader.getParent()); System.out.println(loader.getParent().getParent()); } }