久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當(dāng)前位置:首頁(yè)>職場(chǎng)>jvm面試題常量池(JVM如何加載.class文件的)

jvm面試題常量池(JVM如何加載.class文件的)

發(fā)布時(shí)間:2024-01-24閱讀(17)

導(dǎo)讀面試官:JVM如何加載.class文件的?ClassLoader是什么?1.啟動(dòng)類加載器2.擴(kuò)展類加載器3.應(yīng)用類加載器4.自定義類加載器ClassLoad....面試官:JVM如何加載.class文件的?
  • ClassLoader是什么?
  • 1.啟動(dòng)類加載器
  • 2.擴(kuò)展類加載器
  • 3.應(yīng)用類加載器
  • 4.自定義類加載器

jvm面試題常量池(JVM如何加載.class文件的)(1)

ClassLoader是什么?

ClassLoader就是類加載器,是Java中的核心組件。類加載器主要工作在類加載中的加載過程,它所負(fù)責(zé)的任務(wù)就是,根據(jù)類的全限定名獲取定義該類的二進(jìn)制字節(jié)流,這個(gè)獲取方法在虛擬機(jī)規(guī)范并沒有要求,既可以從jar包,war包中讀取,也可以從網(wǎng)絡(luò)中獲取,或者是由JSP文件生成。類加載器將該字節(jié)流轉(zhuǎn)化為具體的類對(duì)象,存放在JVM的方法區(qū)中,作為該類的訪問入口。

除此之外,ClassLoader還與兩個(gè)類的“相等”有關(guān)。兩個(gè)類相等的其中一個(gè)必要條件就是加載它們的類加載器一定要是同一個(gè),換句話來說,即使兩個(gè)類出自同一個(gè)class文件,如果是經(jīng)過不同的類加載進(jìn)行加載,在JVM中也不是相等的兩個(gè)類。所以這也正是雙親委派模型的一個(gè)重要意義。

從開發(fā)者角度來看,ClassLoader有四種:

1.啟動(dòng)類加載器

啟動(dòng)類加載器 BootStrapClassLoader:它是所有類加載器的祖先,也就是雙親委派模型下的頂層。它的責(zé)任是負(fù)責(zé)加載<JAVA_HOME>/lib目錄下的核心類庫(kù),比如說像Object,System這樣的類都是由啟動(dòng)類加載器來進(jìn)行加載的。并且,它是根據(jù)文件名來判斷合法性的,也就是說,即使我們將一個(gè)不符合規(guī)范的類庫(kù)放進(jìn)目錄里,也是不會(huì)被加載的。那啟動(dòng)類加載器是由JVM中的C 來實(shí)現(xiàn)的,所以在Java語言中是無法直接調(diào)用的。

2.擴(kuò)展類加載器

擴(kuò)展類加載器 :在雙親委派模型下,它是啟動(dòng)類加載器的子加載器,而在Java中,它的父加載器顯示為null,沒錯(cuò),正是因?yàn)閱?dòng)類加載器是C 實(shí)現(xiàn)的,所以在Java中理所應(yīng)當(dāng)是null。它所負(fù)責(zé)的就是加載<JAVA_HOME>/lib/ext目錄下的class文件或者jar包。并且是由Java實(shí)現(xiàn)的,所以可以在Java中進(jìn)行調(diào)用。我們也可以把自己實(shí)現(xiàn)的jar包放在對(duì)應(yīng)的目錄下讓擴(kuò)展類加載器進(jìn)行加載,實(shí)現(xiàn)對(duì)核心類庫(kù)的擴(kuò)展。

3.應(yīng)用類加載器:

應(yīng)用類加載器:主要負(fù)責(zé)加載ClassPath下也就是工程目錄下的class文件和jar包。所以我們平時(shí)寫的自定義類默認(rèn)都是通過應(yīng)用類加載器來進(jìn)行加載的。

4.自定義類加載器

自定義類加載器:除了使用默認(rèn)的這三種,我們還可以自定義類加載器。一般的做法就是繼承ClassLoader抽象類,然后重寫findClass方法,在里面加載好對(duì)應(yīng)的字節(jié)數(shù)組,然后作為參數(shù)傳給defineClass方法,完成真正的類加載。

TAGS標(biāo)簽:  試題  常量  如何  加載  class  jvm面試題常量池(

歡迎分享轉(zhuǎn)載→http://www.avcorse.com/read-238147.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號(hào)-5 TXT地圖HTML地圖XML地圖