国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

java類加載器包括幾種 java里有多少個(gè)類加載器?

java里有多少個(gè)類加載器?Java類加載器分為兩類,一類是系統(tǒng)類加載器,另一類是自定義類加載器。有三個(gè)系統(tǒng)類加載器:引導(dǎo)類加載器、擴(kuò)展類加載器、系統(tǒng)類加載器(和線程上下文類加載器,但主要有三個(gè));用

java里有多少個(gè)類加載器?

Java類加載器分為兩類,一類是系統(tǒng)類加載器,另一類是自定義類加載器。有三個(gè)系統(tǒng)類加載器:引導(dǎo)類加載器、擴(kuò)展類加載器、系統(tǒng)類加載器(和線程上下文類加載器,但主要有三個(gè));用戶定義的類加載器使用繼承java.lang.ClassLoader類加載器類,它不指定數(shù)量。

Java類加載器負(fù)責(zé)讀取Java字節(jié)碼并將其轉(zhuǎn)換為java.lang.Class類班級。

類加載器主要有五個(gè)階段:1。加載:找到要加載的類的字節(jié)碼,創(chuàng)建實(shí)例對象

2。驗(yàn)證:檢查字節(jié)信息,防止對虛擬機(jī)造成傷害

3。準(zhǔn)備:為類變量分配內(nèi)存,并指定初始化值

4。解析:用直接引用替換常量池中的符號引用的過程

5。初始化:如果類有一個(gè)超類,那么JVM有三種加載程序:bootstrap負(fù)責(zé)加載系統(tǒng)類,extclassloader負(fù)責(zé)加載擴(kuò)展類,appclassloader負(fù)責(zé)加載應(yīng)用程序類。他們主要負(fù)責(zé)不同領(lǐng)域的工作,同時(shí)也負(fù)責(zé)授權(quán)模式的實(shí)施。什么是授權(quán)模式?實(shí)際上,當(dāng)類裝入器需要裝入時(shí),它首先要求其父類使用父類的搜索路徑進(jìn)行聯(lián)接。如果找不到,它將使用自己的搜索路徑來搜索類。

執(zhí)行Java*時(shí)。班級,java.exe文件將幫助我們找到JRE,然后找到j(luò)vm.dll這是真正的Java虛擬機(jī)。最后,加載動態(tài)庫并激活Java虛擬機(jī)。在虛擬機(jī)被激活之后,它將執(zhí)行一些初始化操作,例如讀取系統(tǒng)參數(shù)。初始化完成后,將生成第一個(gè)類裝入器——引導(dǎo)裝入器。Bootstrap loader是由C語言編寫的,在Bootstrap loader的初始工作中,除了一些基本的初始化操作外,最重要的是加載啟動器.java并將其父加載程序設(shè)置為null,這意味著父加載程序是引導(dǎo)加載程序。然后引導(dǎo)加載程序要求再次加載啟動器.java并將其父級設(shè)置為之前生成的extclassloader實(shí)體。這兩個(gè)加載程序都以靜態(tài)類的形式存在。需要注意的是,launcher$ExtClassLoader.class類帶啟動器$AppClassLoader.class類它們都是由引導(dǎo)加載程序加載的,所以父級與要加載的類加載程序無關(guān)。