private final ClassLoader parent;
protected Class<?> loadClass(String name, boolean resolve)
throws ClassNotFoundException
{
synchronized (getClassLoadingLock(name)) {
// 首先,檢查請求的類是否已經(jīng)被加載過
Class<?> c = findLoadedClass(name);
if (c == null) {
long t0 = System.nanoTime();
try {
if (parent != null) {//父加載器不為空,調(diào)用父加載器loadClass()方法處理
c = parent.loadClass(name, false);
} else {//父加載器為空划煮,使用啟動類加載器 BootstrapClassLoader 加載
c = findBootstrapClassOrNull(name);
}
} catch (ClassNotFoundException e) {
//拋出異常說明父類加載器無法完成加載請求
}
if (c == null) {
long t1 = System.nanoTime();
//自己嘗試加載
c = findClass(name);
// this is the defining class loader; record the stats
sun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0);
sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1);
sun.misc.PerfCounter.getFindClasses().increment();
}
}
if (resolve) {
resolveClass(c);
}
return c;
}
}
雙親委派模型源碼
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門司蔬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凭语,你說我怎么就攤上這事葱她。” “怎么了似扔?”我有些...
- 文/不壞的土叔 我叫張陵吨些,是天一觀的道長。 經(jīng)常有香客問我炒辉,道長豪墅,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任黔寇,我火速辦了婚禮偶器,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缝裤。我一直安慰自己屏轰,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布憋飞。 她就那樣靜靜地躺著霎苗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榛做。 梳的紋絲不亂的頭發(fā)上唁盏,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼港庄!你這毒婦竟也來了倔既?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布,位于F島的核電站虹脯,受9級特大地震影響驴娃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜循集,卻給世界環(huán)境...
- 文/蒙蒙 一唇敞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咒彤,春花似錦疆柔、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奸例,卻和暖如春彬犯,著一層夾襖步出監(jiān)牢的瞬間向楼,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 前言 在JVM中灭返,類加載的過程分為加載、鏈接(驗證坤邪、準(zhǔn)備熙含、解析)、初始化5個階段艇纺。而加載階段需要完成的重要事項之一...
- 類加載器的父親委托機制 在父親委托機制中怎静,各個類加載器按照父子關(guān)系形成了樹形結(jié)構(gòu),除了根類加載器之外黔衡,其余的類加載...
- java文件要運行蚓聘,除了需要編程成字節(jié)碼文件class文件還要有類加載器去加載class文件。 判斷兩個類是否一樣...
- 類加載機制和雙親委派模型 1. 類加載機制 JVM將.class文件加載到內(nèi)存(方法區(qū))中盟劫,并對數(shù)據(jù)進行解析和初始...