ClassNotFoundException 和 NoClassDefFoundError 區(qū)別

要區(qū)分這兩個異常掏导,先要了解類裝載的顯式和隱式兩種方式

類裝入的方式有兩種 —— 顯式 或 隱式,兩者之間有些細(xì)微差異土匀。

顯式 類裝入發(fā)生在使用以下方法調(diào)用裝入的類的時候:
?cl.loadClass()(cl 是 java.lang.ClassLoader 的實例)
?Class.forName()(啟動的類裝入器是當(dāng)前類定義的類裝入器)

當(dāng)調(diào)用其中一個方法的時候舱殿,指定的類(以類名為參數(shù))由類裝入器裝入。如果類已經(jīng)裝入险掀,那么只是返回一個引用沪袭;否則,裝入器會通過委托模型裝入類樟氢。

隱式 類裝入發(fā)生在由于引用、實例化或繼承導(dǎo)致裝入類的時候(不是通過顯式方法調(diào)用)埠啃。在每種情況下,裝入都是在幕后啟動的碴开,JVM 會解析必要的引用并裝入類毅该。與顯式類裝入一樣,如果類已經(jīng)裝入了叹螟,那么只是返回一個引用鹃骂;否則罢绽,裝入器會通過委托模型裝入類畏线。

類的裝入通常組合了顯式和隱式類裝入良价。例如蒿叠,類裝入器可能先顯式地裝入一個類蚣常,然后再隱式地裝入它引用的所有類市咽。

ClassNotFoundException抵蚊;

當(dāng)應(yīng)用程序試圖通過類的字符串名稱,使用以下三種方法裝入類贞绳,但卻找不到指定名稱的類定義時拋出該異常,是顯式類裝載的拋出的異常冈闭。
1.類 Class 中的 forName() 方法。
2.類 ClassLoader 中的 findSystemClass() 方法遇八。
3.類 ClassLoader 中的 loadClass() 方法耍休。

NoClassDefFoundError:

如果 Java 虛擬機或 ClassLoader 實例試圖裝入類定義(作為正常的方法調(diào)用的一部分刃永,或者作為使用 new 表達式創(chuàng)建新實例的一部分)羊精,但卻沒有找到類定義時拋出該異常。
當(dāng)目前執(zhí)行的類已經(jīng)編譯园匹,但是找不到它的定義時劫灶,會存在 searched-for 類定義。
實際上供汛,這意味著 NoClassDefFoundError 的拋出,是不成功的隱式類裝入的結(jié)果涌穆。
簡單說來怔昨,就是引用的類在類路徑中沒有找到宿稀。

原文鏈接:https://blog.csdn.net/magister_feng/article/details/7459151

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市矮烹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奉狈,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桑驱,死亡現(xiàn)場離奇詭異跛蛋,居然都是意外死亡熬的,警方通過查閱死者的電腦和手機问芬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來强戴,“玉大人挡鞍,你說我怎么就攤上這事∧ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵最域,是天一觀的道長锈麸。 經(jīng)常有香客問我镀脂,道長忘伞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任翘魄,我火速辦了婚禮,結(jié)果婚禮上暑竟,老公的妹妹穿的比我還像新娘育勺。我一直安慰自己绩鸣,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布呀闻。 她就那樣靜靜地躺著潜慎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铐炫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天科贬,我揣著相機與錄音鳖悠,去河邊找鬼榜掌。 笑死乘综,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的卡辰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼反砌,長吁一口氣:“原來是場噩夢啊……” “哼萌朱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嚷兔,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤做入,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后竟块,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蒋情,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辕翰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡喜命,死狀恐怖河劝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赎瞎,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布牡辽,位于F島的核電站,受9級特大地震影響催享,放射性物質(zhì)發(fā)生泄漏哟绊。R本人自食惡果不足惜因妙,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一票髓、第九天 我趴在偏房一處隱蔽的房頂上張望攀涵。 院中可真熱鬧洽沟,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至静尼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鼠渺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工拦盹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掌敬。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓奔害,卻偏偏與公主長得像楷兽,于是被迫代替她去往敵國和親华临。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容